题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
要求
时间限制:1秒 空间限制:32768K
题目分析
共需要跳上n阶台阶,而青蛙一次可以跳上一个台阶,或者两个台阶。
- 当青蛙第一次跳上一个台阶,剩余n-1个台阶
- 当青蛙第一次跳上两个台阶,剩余n-2个台阶
- 而在剩余的n-1或者n-2个台阶,青蛙下一次依然可以跳一个台阶或者跳两个台阶
- 以此类推
所以可以用递归的思想实现算法
算法实现
public int JumpFloor(int target) {
if (target <= 0) {
return -1;
} else if (target == 1) {
return 1;
} else if (target ==2) {
return 2;
} else {
return JumpFloor(target-1)+JumpFloor(target-2);
}
}