1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class Solution { public int coinChange(int[] coins, int amount) { int[] dp = new int[amount + 1]; Arrays.fill(dp, amount + 1); dp[0] = 0; for(int i = 1; i <= amount; i ++) { int temp = dp[i]; for(int j = 0; j < coins.length; j ++) { if(coins[j] <= i) { temp = Math.min(temp, dp[i - coins[j]] + 1); } } dp[i] = temp; } return dp[amount] > amount ? -1 : dp[amount]; } }
|