青蛙跳台阶问题
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
来源:力扣(LeetCode)
代码
class Solution {
public int numWays(int n) {
if (n == 0||n == 1){
return 1;
}
int[] memo = new int[n+1];
memo[0] = 1;
memo[1] = 1;
memo[2] = 2;
for (int i =3;i<=n;i++){
memo[i] = memo[i-1] + memo[i-2];
memo[i] = memo[i]%1000000007;
}
return memo[n];
}
}
总结
- 本题解题思路与斐波那契数列思路完全相同,手动演算出n=1,2,3,4,5时青蛙有几种跳法,可以推出规律,即F(0)=1,F(1)=1,F(2)=2,当n>=3时,F(n) = F(n-1) +F(n-2),问题得解。