剑指 Offer 10- II. 青蛙跳台阶问题
和 剑指 Offer 10- I. 斐波那契数列 很像,改一下初始值就行了。
方法一
class Solution {int mod = (int) 1e9 + 7;public int numWays(int n) {if(n <= 1) return 1;int[] dp = new int[n + 1];dp[1] = 1;dp[2] = 2;for(int i = 3; i <= n; i++){dp[i] = (dp[i - 1] + dp[i - 2]) % mod;}return dp[n];}
}
方法二
对方法一进行空间优化。
class Solution {int mod = (int) 1e9 + 7;public int numWays(int n) {if(n <= 1) return 1;int a = 1, b = 2;for(int i = 3; i <= n; i++){int c = (a + b) % mod;a = b;b = c;}return b;}
}