题目如下:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
牛客网在线编程点这里
思路:
- 青蛙每次只能跳1阶楼梯或2阶楼梯
- 如果当前有n层楼梯每跳一次剩下的跳法可能是f(n-1)次层或f(n-2)次层。
- 因此f(n) = f(n-1) + f(n-2);
- 当青蛙跳到最后只剩1层或2层阶梯时:f(1) = 1; f(2) = 2;
- 用递归的思路完成题解,事实上这是一个斐波那契数列
正确题解:
public class Solution {
public int JumpFloor(int target) {
if(target == 0 ) {
return 0;
}else if(target == 1 ){
return 1;
}else if(target == 2) {
return 2;
}else{
int f1 = 1;
int f2 = 2;
return JumpFloor(target-1)+JumpFloor(target-2);
}
}
}