斐波那契数列
题目
思路
如果用循环的话复杂度会超出;
所以使用动态规划,将之前的值存储起来,之后用到直接用。
代码
var fib = function(n) {
let n1=0, n2=1, sum;
for(let i = 0; i < n; i++){
sum=(n1 + n2) % 1000000007;
n1=n2;
n2=sum;
}
return n1;
};
青蛙跳台阶
题目
思路
跳n阶台阶的方法=跳n-1阶台阶+跳n-2阶台阶
类似于斐波那契数列
代码
var numWays = function(n) {
if(n==0) {return 1}
if(n<=2) {return n}
let t1=1,t2 =2
for(let i=3;i<= n;i++){
let t=t1+t2
t1 = t2
t2 = t%1000000007
}
return t2
};