Coin Change LeetCode solution in Java

1
class Solution {
2
public int coinChange(int[] coins, int amount) {
3
int m = coins.length, n = amount;
4
int dp[][] = new int[m + 1][n + 1];
5
for (int j = 0; j <= n; j++) {
6
dp[0][j] = 0;
7
}
8
for (int i = 0; i <= m; i++) {
9
dp[i][0] = 0;
10
}
11
for (int i = 1; i <= m; i++) {
12
for (int j = 1; j <= n; j++) {
13
int t1 = Integer.MAX_VALUE;
14
if ((i - 1) == 0) {
15
if (j % coins[i - 1] == 0) {
16
dp[i][j] = j / coins[i - 1];
17
} else {
18
dp[i][j] = (int) 1e9;
19
}
20
} else {
21
int t2 = dp[i - 1][j];
22
if (coins[i - 1] <= j) {
23
t1 = dp[i][j - coins[i - 1]] + 1;
24
}
25
dp[i][j] = Math.min(t1, t2);
26
}
27
}
28
}
29
if (dp[m][n] >= 1e9) return -1;
30
else return dp[m][n];
31
}
32
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0