下面要给大家分享的实例同样是和跳台阶相关的内容,一起来看看具体的题目,以及解题思路和实现方式吧。

题目:

一只青蛙一次能够跳上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,跳台阶(思路和实现)相关推荐

  1. 面试算法-青蛙跳台阶问题(JAVA实现)

    题干 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个 n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 数据范围:0<= n <=40 要求:时间复杂度:O(n) ...

  2. 青蛙跳石头java_Java青蛙跳台阶问题的解决思路与代码

    问题描述 一只青蛙一次可以跳上1级台阶,也可以一次跳上2级台阶,请问跳上n级台阶,该请娃一共有多少种跳法? 解决思路 ①如果只有1级台阶,那显然只有一种跳法. ②如果有2级台阶,那么就有2种跳法,一种 ...

  3. 《LeetCode力扣练习》剑指 Offer 10- II. 青蛙跳台阶问题 Java

    <LeetCode力扣练习>剑指 Offer 10- II. 青蛙跳台阶问题 Java 一.资源 题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总 ...

  4. java 简单跳台阶和变态跳台阶

    1. 简单跳台阶 1.1 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 1.2 解题思路 对于本题,有题目描述可知, ...

  5. 青蛙跳石头java_青蛙跳台阶(JAVA)与递归问题探究

    青蛙跳台阶JAVA 一只青蛙一次可以跳上一层台阶,也可以跳上两层,求该青蛙跳上n层的台阶总共有多少种跳法(先后次序不同算不同的结果). 思考:可以看出,每次青蛙出脚都会有两种可能,一步或者两步,再次出 ...

  6. 每日算法——最全青蛙跳台阶算法问题

    每日算法 2022年9月12日 一.最全青蛙跳台阶算法问题 问题一:一只青蛙一次可以跳上一级台阶,也可以跳上二级台阶,求该青蛙跳上一个n级的台阶总共需要多少种跳法. 分析:当n=1的时候,①只需要跳一 ...

  7. 【python逻辑算法题】一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法

    文章目录 一.题目描述 二.问题分析 三.代码分析与逻辑(python3实现) 四.源码及运行结果 总结 提示:以下是本篇文章正文内容: 一.题目描述 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2 ...

  8. 算法:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.

    题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 青蛙每一次跳跃只有两种选择:一是再跳1级阶梯到达第n级阶梯,此时小青蛙处于第n-1级阶梯;或者再跳 ...

  9. python实现青蛙跳台阶算法

    问题描述: 青蛙每次跳台阶每次只能跳一个台阶或两个台阶,跳到第N个台阶总共有多少种跳法 解决方法: 可以转化为斐波那契数列的方式进行求解,假设要跳N阶台阶,那么第一步有两种跳法: (1)跳一步,后面还 ...

最新文章

  1. Java语言语法语义分析器设计与实现
  2. 限制文本框只能输入数字和小数点
  3. Fiddler响应拦截数据篡改,实现特殊场景深度测试(一)
  4. Docker应用容器引擎_简介---Docker工作笔记003
  5. 罗永浩要造智能音箱;苹果承认bug;微软特制AI曝光 | 极客头条
  6. 测试Leader应该做哪些事
  7. 铁路售票系统_城轨交通自动售检票(AFC)实训系统中心_地高铁车站票务实训如何建设...
  8. 360浏览器集成IE8内核
  9. 只需要这三个步骤让你轻松搞定Maya中贴hdr贴图
  10. 操作系统文件的物理结构(文件分配方式)
  11. 设计过程(概要设计和详细设计)
  12. android 电视安装apk文件损坏,智能电视无法安装APK文件?原因都在这里!
  13. 开始编写寄几的 CSS 基础库
  14. oracle em 监听,监听程序ORACLE_HOME是啥??我EM重置,这个不知道要填什么
  15. img的title和alt区别
  16. 3行代码实现全平台多语言离线OCR文字识别,完全免费开源
  17. Snap 2020年第三季度收益电话会议记录
  18. 深度解码真实的90后消费:敢爱敢花,却被高负债压得透不过气
  19. 用JS描述的数据结构及算法表示——栈和队列(基础版)
  20. python3 中英文标点转换

热门文章

  1. webpack最常用的loader:style-loader、css-loader、less-loader、postcss-loader、babel-loader等
  2. QProcess实时读取命令输出
  3. 【OpenGL-矩阵】旋转矩阵推导
  4. mac安装cnpm安装失败
  5. 本地化部署和新增sandcastle案例
  6. day01-移动web
  7. BUZ-自定义指令/渲染
  8. 大数据从入门到实战- 信息挖掘 - 挖掘父子关系
  9. 达梦使用常见问题解析
  10. 011.socket函数错误封装处理