Skip to content

Commit 497ead9

Browse files
authored
2022-07-10 update: added "Min Cost Climbing Stairs" (#29)
1 parent ff01d9f commit 497ead9

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.smlnskgmail.jaman.leetcodejava.easy;
2+
3+
// https://leetcode.com/problems/min-cost-climbing-stairs/
4+
public class MinCostClimbingStairs {
5+
6+
private final int[] input;
7+
8+
public MinCostClimbingStairs(int[] input) {
9+
this.input = input;
10+
}
11+
12+
public int solution() {
13+
int n = input.length;
14+
if (n == 2) {
15+
return Math.min(input[0], input[1]);
16+
}
17+
int[] dp = new int[n + 1];
18+
int dpN = dp.length;
19+
for (int i = 2; i < dpN; i++) {
20+
dp[i] = Math.min(
21+
dp[i - 1] + input[i - 1],
22+
dp[i - 2] + input[i - 2]
23+
);
24+
}
25+
return dp[dpN - 1];
26+
}
27+
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.smlnskgmail.jaman.leetcodejava.easy;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.assertEquals;
6+
7+
public class MinCostClimbingStairsTest {
8+
9+
@Test
10+
public void defaultTest() {
11+
assertEquals(
12+
15,
13+
new MinCostClimbingStairs(new int[]{10, 15, 20}).solution()
14+
);
15+
}
16+
17+
}

0 commit comments

Comments
 (0)