一、题目描述
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
示例1
输入
1
返回值
1
示例2
输入
4
返回值
5
二、代码
Java如果遇到编译错误的话是因为它默认代码的方法名给错了,把首字母改成小写就好了呦~
注意图中圈出的部分
public class Solution {
public int jumpFloor(int target) {
if (target >= 0 && target <= 2)
return target;
return jumpFloor(target-1) + jumpFloor(target-2);
}
}
下面的是C的递归代码,如果对时间复杂度和空间复杂度有要求或者像下一题变态跳台阶一样,多考虑一下数据的存储问题也是需要的,不过这个逻辑就i是跟上一题一模一样,就是最后一步可能是一阶那就是f(n-1)的方法数+最后一步是两阶的方法数,即f(n-2)。(这题我好像做了好多遍,总有一种似曾相识的感觉)
int jumpFloor(int number ) {
// write code here
if( number == 0 || number == 1)
return number;
if(number == 2)
return 2;
else
return jumpFloor(number-1)+jumpFloor(number-2);
}