题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。 求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 思路限定了青蛙一次只能有两种跳法,用逆推方式去思考 如果最后一次跳1级,那么一共有f(n-1)种跳法。 如果最后一次跳2级,那么一共有f(n-2)种跳法。 那么,f(n)=f(n-1)+f(n-2)。 当n=0时,f(0)=0。 当n=1时,只有一种f(1)=1。 当n=2时,有两种情况f(2)=2。 当n=3时,就符合f(n)=f(n-1)+f(n-2)。 可以想到是斐波那契数列的变形。0,1,2,3,5,8... Java 1.81234567891011121314151617public class Solution { public int JumpFloor(int target) { int a = 0; int b = 1; int c = 0; if(target<0){ return -1; }else{ for (int i = 1; i <= target; i++) { c = a + b; a = b; b = c; } return c; } }}文章作者: snmlm文章链接: https://snmlm.github.io/algorithm/offer/Offer_08/版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 snmlm!算法剑指offer上一篇07 斐波那契数列下一篇09 变态跳台阶 相关推荐 2020-03-13剑指offer 汇总 2020-03-1301 二维数组中的查找 2020-03-1302 替换空格 2020-03-1303 从尾到头打印链表 2020-03-1305 重建二叉树 2020-03-1305 用两个栈实现队列