一 题目
二 代码
//动态规划
let numWays = function(n) {
if(n<0||n>100) return;
//初始化
//dp[i]表示青蛙跳到第i个台阶需要多少种方式
let dp=[];
dp[0]=dp[1]=1;
dp[2]=2;
for(let i=3;i<=100;i++){
//青蛙要么是从前一个台阶跳一阶上来的,要么是从前前一个台阶跳两阶上来的
dp[i]=(dp[i-1]+dp[i-2])%1000000007;
}
return dp[n];
};
//不用dp数组
let numWays = function(n) {
if(n<0||n>100) return;
if(n===0||n===1) return 1;
if(n===2) return 2;
let previous1=1;
let previous2=2;
let res;
for(let i=3;i<=n;i++){
res=(previous1+previous2)%1000000007;
previous1=previous2;
previous2=res;
}
return res;
};