跳台阶算法java,跳台阶(思路和实现)
下面要给大家分享的实例同样是和跳台阶相关的内容,一起来看看具体的题目,以及解题思路和实现方式吧。
题目:
一只青蛙一次能够跳上1级台阶,也能够跳上2级台阶。
求:
这只青蛙跳上一个n级台阶一共的跳法有多少种?
注:
先后次序不同算不同的结果
思路1:
对于这个题目的话,前提是只有1次1阶或者是2阶的跳法
1、假如2种跳法,1阶或者是2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1)
2、假如,第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2)
3、由a假设可以得出总跳法为:f(n)=f(n-1)+f(n-2)
4、之后通过实际的情况可以得出:只有一阶的时候f(1)=1 ,只有两阶的时候可以有f(2)=2
5、最终得出一个斐波那契数列:
代码实现:public class Solution {
public int JumpFloor(int target) {
if (target <= 0) {
return -1;
} else if (target == 1) {
return 1;
} else if (target ==2) {
return 2;
} else {
return JumpFloor(target-1)+JumpFloor(target-2);
}
}
}
思路2:
这道题假如用递归的话提交会显示以下的情况:
运行超时:
您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。
所以考虑用迭代解决。
代码实现:public int JumpFloor(int target) {
if(target == 1 || target == 2) {
return target;
}
// 第一阶和第二阶考虑过了,初始当前台阶为第三阶,向后迭代
// 思路:当前台阶的跳法总数=当前台阶后退一阶的台阶的跳法总数+当前台阶后退二阶的台阶的跳法总数
int jumpSum = 0;// 当前台阶的跳法总数
int jumpSumBackStep1 = 2;// 当前台阶后退一阶的台阶的跳法总数(初始值当前台阶是第3阶)
int jumpSumBackStep2 = 1;// 当前台阶后退二阶的台阶的跳法总数(初始值当前台阶是第3阶)
for(int i = 3; i <= target; i++) {
jumpSum= jumpSumBackStep1 + jumpSumBackStep2;
jumpSumBackStep2 = jumpSumBackStep1;// 后退一阶在下一次迭代变为后退两阶
jumpSumBackStep1 = jumpSum; // 当前台阶在下一次迭代变为后退一阶
}
return jumpSum;
}
思路3:
对于第n个台阶来说,只能从n-1或者是n-2的台阶跳上来。
所以,F(n) = F(n-1) + F(n-2)
斐波拉契数序列,初始条件
n=1:只能一种方法
n=2:两种方法
递归一下就可以了。
代码实现:class Solution {
public:
int jumpFloor(int number) {
if(number <= 0)
return 0;
else if(number == 1)
return 1;
else if(number == 2)
return 2;
else
return jumpFloor(number-1) + jumpFloor(number-2);
}
};
更多java实例,请继续关注本站了解吧!更多实例内容,可以分享给大家呢。
推荐阅读:
跳台阶算法java,跳台阶(思路和实现)相关推荐
- 面试算法-青蛙跳台阶问题(JAVA实现)
题干 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个 n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 数据范围:0<= n <=40 要求:时间复杂度:O(n) ...
- 青蛙跳石头java_Java青蛙跳台阶问题的解决思路与代码
问题描述 一只青蛙一次可以跳上1级台阶,也可以一次跳上2级台阶,请问跳上n级台阶,该请娃一共有多少种跳法? 解决思路 ①如果只有1级台阶,那显然只有一种跳法. ②如果有2级台阶,那么就有2种跳法,一种 ...
- 《LeetCode力扣练习》剑指 Offer 10- II. 青蛙跳台阶问题 Java
<LeetCode力扣练习>剑指 Offer 10- II. 青蛙跳台阶问题 Java 一.资源 题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总 ...
- java 简单跳台阶和变态跳台阶
1. 简单跳台阶 1.1 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 1.2 解题思路 对于本题,有题目描述可知, ...
- 青蛙跳石头java_青蛙跳台阶(JAVA)与递归问题探究
青蛙跳台阶JAVA 一只青蛙一次可以跳上一层台阶,也可以跳上两层,求该青蛙跳上n层的台阶总共有多少种跳法(先后次序不同算不同的结果). 思考:可以看出,每次青蛙出脚都会有两种可能,一步或者两步,再次出 ...
- 每日算法——最全青蛙跳台阶算法问题
每日算法 2022年9月12日 一.最全青蛙跳台阶算法问题 问题一:一只青蛙一次可以跳上一级台阶,也可以跳上二级台阶,求该青蛙跳上一个n级的台阶总共需要多少种跳法. 分析:当n=1的时候,①只需要跳一 ...
- 【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法
文章目录 一.题目描述 二.问题分析 三.代码分析与逻辑(python3实现) 四.源码及运行结果 总结 提示:以下是本篇文章正文内容: 一.题目描述 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2 ...
- 算法:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 青蛙每一次跳跃只有两种选择:一是再跳1级阶梯到达第n级阶梯,此时小青蛙处于第n-1级阶梯;或者再跳 ...
- python实现青蛙跳台阶算法
问题描述: 青蛙每次跳台阶每次只能跳一个台阶或两个台阶,跳到第N个台阶总共有多少种跳法 解决方法: 可以转化为斐波那契数列的方式进行求解,假设要跳N阶台阶,那么第一步有两种跳法: (1)跳一步,后面还 ...
最新文章
- Java语言语法语义分析器设计与实现
- 限制文本框只能输入数字和小数点
- Fiddler响应拦截数据篡改,实现特殊场景深度测试(一)
- Docker应用容器引擎_简介---Docker工作笔记003
- 罗永浩要造智能音箱;苹果承认bug;微软特制AI曝光 | 极客头条
- 测试Leader应该做哪些事
- 铁路售票系统_城轨交通自动售检票(AFC)实训系统中心_地高铁车站票务实训如何建设...
- 360浏览器集成IE8内核
- 只需要这三个步骤让你轻松搞定Maya中贴hdr贴图
- 操作系统文件的物理结构(文件分配方式)
- 设计过程(概要设计和详细设计)
- android 电视安装apk文件损坏,智能电视无法安装APK文件?原因都在这里!
- 开始编写寄几的 CSS 基础库
- oracle em 监听,监听程序ORACLE_HOME是啥??我EM重置,这个不知道要填什么
- img的title和alt区别
- 3行代码实现全平台多语言离线OCR文字识别,完全免费开源
- Snap 2020年第三季度收益电话会议记录
- 深度解码真实的90后消费:敢爱敢花,却被高负债压得透不过气
- 用JS描述的数据结构及算法表示——栈和队列(基础版)
- python3 中英文标点转换