题干
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
知识点:递归
我的思路
看了是递归的提示。但是实在没思路。代码没写出。
大佬解析
代码:
public class Solution {
public int JumpFloor(int target) {
if(target <= 2){
return target;
}
//迭代的本质就是对递归对拆解,不需要强行理解pre1,2对应对阶数
int pre2 = 1, pre1 = 2;
for (int i = 3; i <= target; i++){
int cur = pre2 + pre1;
pre2 = pre1;
pre1 = cur;
}
return pre1;
}
}
public class Solution {
public int JumpFloor(int target) {
//一种跳法跳到1,两种跳法跳到2
if(target<=2){
return target;
}
return JumpFloor(target-1)+JumpFloor(target-2);
}
}