跳台阶
描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
代码 (Java)
public class Solution {
public int JumpFloor(int target) {
int[] f = new int[target];
if (target >= 1)
f[0] = 1;
if (target >= 2)
f[1] = 2;
for (int i = 2; i < target; ++i) {
f[i] = f[i - 1] + f[i - 2];
}
return f[target - 1];
}
}
思路
- 这道题跟 斐波那契数列是一样的思路,只不过是初始的两个值有所不同:跳上1级台阶有1种跳法、跳上2级台阶有2种跳法。当然,也可以用递归,但递归效率太低。