题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:
一次只能跳一阶或两阶
1.如果第一次跳了一阶,那么还剩下n-1个台阶,跳法为JumpFloor(n-1)
2.如果第一次跳了两阶,那么还剩下n-2个台阶,跳法为JumpFloor(n-2)
3.由1和2可以得出总跳法JumpFloor(n) = JumpFloor(n - 1) + JumpFloor(n - 2)
4.当只剩下一个台阶时,只有一种跳法;当还剩下2个台阶时,可以有2种跳法
代码:
public class Solution {
public int JumpFloor(int target) {
//当只剩下一个台阶时,只有一种跳法
if(target == 1) return 1;
//剩下2个台阶时,可以有2种跳法
if(target == 2) return 2;
//总跳法JumpFloor(n) = JumpFloor(n - 1) + JumpFloor(n - 2)
return JumpFloor(target - 1) + JumpFloor(target - 2);
}
}