From cdd6a77c44beb0fe125113f07589a9323c6602cf Mon Sep 17 00:00:00 2001 From: Mayank Patel Date: Wed, 27 Sep 2017 14:08:30 +0530 Subject: [PATCH] Straight forward dynamic programming approach --- .../The Coin Change Problem/Mayank.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Dynamic Programming/The Coin Change Problem/Mayank.java diff --git a/Dynamic Programming/The Coin Change Problem/Mayank.java b/Dynamic Programming/The Coin Change Problem/Mayank.java new file mode 100644 index 0000000..8f8dbd2 --- /dev/null +++ b/Dynamic Programming/The Coin Change Problem/Mayank.java @@ -0,0 +1,46 @@ +import java.io.*; +import java.util.*; +import java.text.*; +import java.math.*; +import java.util.regex.*; + +public class Solution { + + static long getWays(long n, long[] c){ + long[][] dp = new long[c.length][(int)(n+1)]; + for(int i=0;ij){ + //System.out.println("else if"); + dp[i][j]=dp[i-1][j]; + } + else{ + dp[i][j]=dp[i-1][j]+dp[i][j-(int)c[i]]; + } + } + } + System.out.println(dp[c.length-1][(int)n]); + return dp[c.length-1][(int)n]; + } + + public static void main(String[] args) { + Scanner in = new Scanner(System.in); + int n = in.nextInt(); + int m = in.nextInt(); + long[] c = new long[m]; + for(int c_i=0; c_i < m; c_i++){ + c[c_i] = in.nextLong(); + } + // Print the number of ways of making change for 'n' units using coins having the values given by 'c' + long ways = getWays(n, c); + } +} +