思路:与斐波那契数列一致,用动态规划思想。n级台阶,一次只能跳一步或者两步,n=1时一种跳法,n=2两种跳法,当n>2时,分情况讨论,第一次跳一步,后续为f(n-1)种跳法;否则为f(n-2)种跳法。
class Solution {
public int numWays(int n) {
int a = 1, b = 1, sum = a + b;
for (int i = 0; i < n; i++){
sum = (a + b)%1000000007;
a = b;
b = sum;
}
return a;
}
}
时间复杂度O(N),空间复杂度O(1)