牛客题霸NC68题解
跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
示例1
输入
1
返回值
1
示例2
输入
4
返回值
5
解决思路
就是个斐波那契数列,代码如下:
public class Solution {
public int JumpFloor(int target) {
if(target <= 1){
return 1;
}
return JumpFloor(target-1) + JumpFloor(target-2);
}
}
也可以使用非递归实现,效率比较高:
public class Solution {
public int JumpFloor(int target) {
if(target <= 1){
return 1;
}
int m = 1, n = 1;
for(int i = 2; i <= target; i++){
int t = m + n;
m = n;
n = t;
}
return n;
}
}