4
4
5
5
/**
6
6
* * Coin Change Problem II (Variation of Unbounded Knapsack Problem)
7
- *
7
+ *
8
8
* Problem: https://www.geeksforgeeks.org/find-minimum-number-of-coins-that-make-a-change/
9
9
*/
10
-
11
10
public class Solution {
12
11
public int minimumNumberOfCoins (int [] coins , int target ) {
13
12
// return minimumNumberOfCoinsRec(coins.length, coins, target);
@@ -22,29 +21,22 @@ public int minimumNumberOfCoins(int[] coins, int target) {
22
21
23
22
/**
24
23
* * Dynamic Programming Approach
25
- *
24
+ *
26
25
* * TC: O(nt)
27
26
* * SC: O(nt)
28
27
*/
29
28
private int minimumNumberOfCoinsDP (int [] coins , int target ) {
30
29
int len = coins .length ;
31
30
int [][] dp = new int [len + 1 ][target + 1 ];
32
31
33
- for (int i = 0 ; i < len + 1 ; i ++)
34
- dp [i ][0 ] = 0 ;
32
+ for (int i = 0 ; i < len + 1 ; i ++) dp [i ][0 ] = 0 ;
35
33
36
- for (int j = 1 ; j < target + 1 ; j ++)
37
- dp [0 ][j ] = Integer .MAX_VALUE - 1 ;
34
+ for (int j = 1 ; j < target + 1 ; j ++) dp [0 ][j ] = Integer .MAX_VALUE - 1 ;
38
35
39
36
for (int i = 1 ; i < len + 1 ; i ++) {
40
37
for (int j = 1 ; j < target + 1 ; j ++) {
41
- if (coins [i - 1 ] <= j )
42
- dp [i ][j ] = Math .min (
43
- 1 + dp [i ][j - coins [i - 1 ]],
44
- dp [i - 1 ][j ]
45
- );
46
- else
47
- dp [i ][j ] = dp [i - 1 ][j ];
38
+ if (coins [i - 1 ] <= j ) dp [i ][j ] = Math .min (1 + dp [i ][j - coins [i - 1 ]], dp [i - 1 ][j ]);
39
+ else dp [i ][j ] = dp [i - 1 ][j ];
48
40
}
49
41
}
50
42
@@ -53,7 +45,7 @@ private int minimumNumberOfCoinsDP(int[] coins, int target) {
53
45
54
46
/**
55
47
* * Memoization Approach
56
- *
48
+ *
57
49
* * TC: O(nt)
58
50
* * SC: O(nt)
59
51
*/
@@ -75,7 +67,7 @@ private int minimumNumberOfCoinsDP(int[] coins, int target) {
75
67
76
68
/**
77
69
* * Recursive Approach
78
- *
70
+ *
79
71
* * TC: O(2^n) approximately
80
72
* * SC: O(2^n) approximately
81
73
*/
@@ -101,4 +93,4 @@ public static void main(String[] args) {
101
93
// should be 2
102
94
System .out .println (solution .minimumNumberOfCoins (new int [] {9 , 6 , 5 , 1 }, 11 ));
103
95
}
104
- }
96
+ }
0 commit comments