Skip to content

Commit e654d80

Browse files
committed
add 剑指 Offer II 088. 爬楼梯的最少成本
1 parent 1183e31 commit e654d80

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// LeetCode 原题:剑指 Offer II 088. 爬楼梯的最少成本
2+
// https://leetcode.cn/problems/GzCJIP/
3+
4+
/**
5+
* @param {number[]} cost
6+
* @return {number}
7+
*/
8+
var minCostClimbingStairs = function (cost) {
9+
const n = cost.length;
10+
// prev,curr 用于保存到达前一个和当前阶梯需要花费的最小体力
11+
let prev;
12+
let curr;
13+
for (let i = 0; i <= n; i++) {
14+
// 初始位置可为0和1层阶梯,故体力消耗为0
15+
if (i === 0 || i === 1) {
16+
prev = 0;
17+
curr = 0;
18+
} else {
19+
// 到达下一个阶梯,可由前一个阶梯爬 2 个阶梯到达,也可由当前阶梯爬 1 个阶梯到达
20+
// 取这两种情况的耗费体力最小的,next为耗费的最小体力
21+
const next = Math.min(prev + cost[i - 2], curr + cost[i - 1]);
22+
prev = curr;
23+
curr = next;
24+
}
25+
}
26+
27+
return curr;
28+
};
29+
30+
// test case
31+
console.log(minCostClimbingStairs([10, 15, 20]) === 15);
32+
console.log(minCostClimbingStairs([1, 100, 1, 1, 1, 100, 1, 1, 100, 1]) === 6);

0 commit comments

Comments
 (0)