Mid Coding

Coin Change Problem (Minimum Coins to Make?

Amount)

int CoinChange(int[] coins, int amount)

int[] dp = new int[amount + 1];

Array.Fill(dp, amount + 1);

dp[0] = 0;

for (int i = 1; i <= amount; i++)

foreach (int coin in coins)

if (coin <= i)

dp[i] = Math.Min(dp[i], 1 + dp[i - coin]);

return dp[amount] > amount ? -1 : dp[amount];

Explanation:

Bottom-up DP: min coins needed for all amounts up to target.

Follow on:

More from C# Programming Tutorial

All questions for this course