Skip to content

Commit 3e8811b

Browse files
author
Kohei Asai
authored
746. Min Cost Climbing Stairs (#58)
1 parent 857fb8b commit 3e8811b

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import minCostClimbingStairs from "./minCostClimbingStairs";
2+
3+
describe("746. Min Cost Climbing Stairs", () => {
4+
test("#1", () => {
5+
expect(minCostClimbingStairs([10, 15, 20])).toBe(15);
6+
});
7+
8+
test("#2", () => {
9+
expect(minCostClimbingStairs([1, 100, 1, 1, 1, 100, 1, 1, 100, 1])).toBe(6);
10+
});
11+
});

solutions/minCostClimbingStairs.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// 746. Min Cost Climbing Stairs
2+
// https://leetcode.com/problems/min-cost-climbing-stairs/
3+
function minCostClimbingStairs(costs: number[]): number {
4+
// this is dynamic programming.
5+
// see https://github.com/axross/leetcode-typescript/pull/58
6+
const dp = new Map([[-2, 0], [-1, 0]]);
7+
8+
for (let i = 0; i <= costs.length; ++i) {
9+
dp.set(i, Math.min(dp.get(i - 2)!, dp.get(i - 1)!) + (costs[i] || 0));
10+
}
11+
12+
return dp.get(costs.length)!;
13+
}
14+
15+
export default minCostClimbingStairs;

0 commit comments

Comments
 (0)