Coin Change
You is given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins so need to make up that amount. If that amount of cannot is made up by any combination of the coins, return -1
.
Example 1:
Coins = [1, 2, 5]
, amount =11
return 3
(11 = 5 + 5 + 1)
Example 2:
Coins = [2]
, amount =3
Return -1
.
Note:
You may assume so you have a infinite number of each kind of coin.
Credits:
Special thanks to @jianchao. Li.fighter for adding the problem and creating all test cases.
Dp!
1 classSolution {2 Public:3 intCoinchange (vector<int>& coins,intamount) {4vector<int> dp (amount +1, Int_max);5dp[0] =0;6 for(Auto coin:coins) {7 for(inti = coin; I <= amount; ++i) {8 if(Dp[i-coin]! =Int_max) {9Dp[i] = min (Dp[i], Dp[i-coin] +1);Ten } One } A } - returnDp[amount] = = Int_max? -1: Dp[amount]; - } the};
[Leetcode] Coin Change