这道题是斐波那契数列的变种,也可以说是动态规划,都是从下往上挨个计算,直到我们需要的那个数值。第n个台阶的所有跳法,等于第n-1个台阶的跳法+第n-2个台阶的跳法。原因如下:
代码:
class Solution {
public int numWays(int n) {
if (n < 0) return -1;
int f0 = 1, f1 = 1, ans = 0;
if (n < 2) return 1;
for (int i = 2; i <= n; i++) {
ans = (f0 + f1) % 1000000007;
f0 = f1;
f1 = ans;
}
return ans;
}
}