跳台阶
题目:
思路:
做这种题目其实可以考虑动态规划算法,即将大问题化解成小问题,将小问题的答案拼凑起来就是正确的答案了。其实跳的步伐有两种,即
F(N)= F(N-1)+F(N-2)
.....
F(3) = F(2)+F(1)
F(2) = 2
F(1) = 1
所以考虑递归会更好一点。即不断代入,直至N为1或2,再把得出来的数相加。
代码示例:
public class Solution {
public int JumpFloor(int target) {
return Jump(target);
}
public int Jump(int target) {
if (target < 1)
return 0;
if (target == 1) {
return 1;
} else if (target == 2) {
return 2;
} else {
return Jump(target - 1) + Jump(target - 2);
}
}
}