Leetcode:剑指 Offer 10- II. 青蛙跳台阶问题
class Solution {
public int numWays(int n) {
if(n==0){
return 1;
}
if(n<=2){
return n;
}
int[] dp=new int[n+1];
dp[0]=1;
dp[1]=1;
dp[2]=2;
//随着 nn 增大, f(n)f(n) 会超过 Int32 甚至 Int64 的取值范围,导致最终的返回值错误
//而且题目要求用1000000007取模
for(int i=3;i<=n;i++){
dp[i]=(dp[i-1]+dp[i-2])%1000_000_007;
}
return dp[n];
}
}

浙公网安备 33010602011771号