题解 | #跳台阶#

跳台阶

http://www.nowcoder.com/practice/bfb2a2b3cdbd4bd6bba0d4dca69aa3f0

这个和斐波那契一样吧

// 动态规划是把一个问题分解成相互重叠的子问题
// 爬到第n阶可以在第n - 1阶爬一个台阶,或者在n - 2阶爬两个台阶
// 所以就找到了对应关系 count(n) = count(n - 1) + count(n - 2)
// count(1) = 1
// count(2) = 2
// count(3) = 3
function count(n){
    if(n < 2){
        return n
    }
    let p = 0,q = 1,r = 2
    for(let i = 3;i <= n;i++){
        p = q
        q = r
        r = p + q
    }
    return r
}

console.info(count(n))
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务