爬楼梯
思路
共有f(n)种方式爬n阶楼梯
状态转移方程:f(n) = f(n-1) + f(n-2)
边界1: f(1) = 1
边界2: f(2) = 2
代码
/**
* @param {number} n
* @return {number}
*/
var climbStairs = function(n) {
// 动态规划
// 时间----O(n) 84ms
// 空间----O(n) 37.8MB
// let dp = new Array(n+1).fill(0);
// dp[1]=1;
// dp[2]=2;
// for(let i = 3; i<=n; i++){k
// dp[i] = dp[i-1] + dp[i-2];
// }
// return dp[n];
// 动态规划空间优化
// 时间----O(n) 84ms
// 空间----O(1) 37.7MB
let prev = 1;
let curr = 2;
if(n==1) return 1;
for(let i=3; i<=n; i++){
let sum = prev + curr;
prev = curr;
curr = sum;
}
return curr;
};