题解 | #跳台阶#
跳台阶
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))