爬楼梯

2019-10-28  本文已影响0人  haha2333

之前使用的递归法重复计算太多,不能通过时间限制

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
    }
}
上一篇 下一篇

猜你喜欢

热点阅读