动态规划
因为最后一步只能选择1、2
公式:dp[n] = dp[n-1] + dp[n-2]
1 2 3 4 5 6 7 8 9 10 11 12 13
|
var climbStairs = function (n) { if (n === 1) return 1; if (n === 2) return 2; const dp = [1, 2]; for (let i = 2; i < n; i++) { dp.push(dp[i - 1] + dp[i - 2]); } return dp.pop(); };
|
优化空间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
var climbStairs = function (n) { if (n === 1) return 1; if (n === 2) return 2; const dp = [1, 2]; for (let i = 2; i < n; i++) { const next = dp[0] + dp[1]; dp[0] = dp[1] dp[1] = next; } return dp.pop(); };
|