Skip to content

Commit bda9407

Browse files
committed
added coin change example dp (dp, refer: geekforgeek)
1 parent 409906a commit bda9407

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

Dynamic_Programming.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ void coin_change() {
5555
// http://www.geeksforgeeks.org/dynamic-programming-set-7-coin-change/
5656
int arr[] = { 1, 2, 3 };
5757
pout.println(coin_change_rec(arr, arr.length, 4));
58+
pout.println(coin_change_dp(arr, arr.length, 4));
5859
}
5960

6061
int coin_change_rec(int arr[], int len, int sum) {
@@ -69,6 +70,32 @@ int coin_change_rec(int arr[], int len, int sum) {
6970

7071
return coin_change_rec(arr, len - 1, sum) + coin_change_rec(arr, len, sum - arr[len - 1]);
7172
}
73+
74+
int coin_change_dp(int arr[],int len,int sum){
75+
76+
int dp[][] = new int[sum+1][len];
77+
for(int i=0;i<len;i++)
78+
dp[0][i] = 1;
79+
80+
for(int i=1;i<=sum;i++){
81+
for(int j=0;j<len;j++){
82+
int x,y;
83+
if(i-arr[j]>=0)
84+
x = dp[i-arr[j]][j];
85+
else
86+
x = 0;
87+
88+
if(j>=1)
89+
y = dp[i][j-1];
90+
else
91+
y = 0;
92+
93+
dp[i][j] = x + y;
94+
}
95+
}
96+
97+
return dp[sum][len-1];
98+
}
7299

73100
void min_cost_path() {
74101
// Read more :

0 commit comments

Comments
 (0)