剑指offer上的题目
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
首先很明显这是一个斐波那契数列的问题,但是我觉得这是一个变种比较大的斐波那契数列原因如下

而并不是如书中所描述的一样
当阶梯为1时只有一种方法 当阶梯为2时有两种方法
故代码应该如下
public int JumpFloor(int target) { if (target <= 0) { return -1; } else if (target == 1) { return 2; } else if (target ==2) { return 3; } else { return 2*JumpFloor(target-1)+JumpFloor(target-2); } }
而不是
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); } }
本文探讨了一道剑指Offer上的经典题目:一只青蛙跳上n级台阶的不同跳法数量。文章对比了两种不同的递归实现方式,并指出这实际上是一个斐波那契数列的变种问题。通过分析,给出了正确的递归解决方案。
344

被折叠的 条评论
为什么被折叠?



