LeetCode 509. 斐波那契数
📖 考察点
动规
📖 题意理解
💡 解题思路
/**
- 五部曲
- 1.dp数组每一项为n对应斐波那契数
- 2.递推公式为 dp[n] = dp[n-1]+dp[n-2]
- 3.初始化为dp[0] = 0 dp[1] = 1
- 4.便历顺序为从小到大
- 5.举例0,1,1,2,3,5,8 */
💻 代码实现
JavaScript
var fib = function (n) {
if (n === 0) return 0;
if (n === 1) return 1;
let pre = 0;
let cur = 1;
for (let i = 2; i <= n; i++) {
let temp = cur;
cur = cur + pre;
pre = temp;
}
return cur;
};
LeetCode 70. 爬楼梯
📖 考察点
动规
📖 题意理解
💡 解题思路
/**
- 1.dp[i] 代表 跳到第i层有dp[i]种不同的方法
- 2.递推公式,dp[i]可以 从dp[i-1]跳一层上来或者从dp[i-2]跳2层上来
- 3.初始化dp[0] = 1;dp[1] = 1;dp[2] = 2;
- 4.从小到大便历
- 5.举例1,1,2,3,5 */
💻 代码实现
JavaScript
var climbStairs = function (n) {
if (n === 0) return 1;
if (n === 1) return 1;
let pre = 1;
let cur = 1;
for (let i = 2; i <= n; i++) {
let temp = cur;
cur = cur + pre;
pre = temp;
}
return cur;
};
LeetCode 746. 使用最小花费爬楼梯
📖 考察点
动规
📖 题意理解
💡 解题思路
/**
- 五部曲
- dp[i] 为到达第i层所需要的最小花费
- 到达第i层的路径为dp[i-1]+cost[i-1] || dp[i-2]+cost[i-2] 取最小值,所以递推公式为dp[i] = Math.min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
- 初始化dp[0] = 0,dp[1] = 0; 可以直接到达;
- 从小到大便历
- 举例
- cost = [10,15,20]
- dp = [0,0,10,15]; */
💻 代码实现
JavaScript
var minCostClimbingStairs = function (cost) {
let pre = 0;
let cur = 0;
for (let i = 2; i <= cost.length; i++) {
let temp = cur;
cur = Math.min(cur + cost[i - 1], pre + cost[i - 2]);
pre = temp;
}
return cur;
};