之前使用的递归法重复计算太多,不能通过时间限制
var climbStairs = function(n) {
if(n==1) return 1
if(n==2) return 2
else{
return climbStairs(n-1)+climbStairs(n-2)
}
}
今天补一个时间复杂度没那么高的方法
var climbStairs = function(n) {
if(n==1) return 1
if(n==2) return 2
else{
let i=1
let j =2
let res=0
let k=3
while(k<=n){
res = i+j
i= j
j=res
k++
}
return res
}
}
网友评论