public static int coinChange(int [] coins,int amount){
if (amount == 0){
return 0;
}
if (coins == null || coins.length <= 0){
return -1;
}
int [] dp = new int[amount +1];
Arrays.fill(dp,amount +1);
dp[0] = 0;
for (int i = 1; i <= amount;i++){
for (int j = 0;j < coins.length;j++){
// 过滤掉面值比总额还大的
if (coins[j] <= i){
dp[i] = Math.min(dp[i],dp[i-coins[j]] +1);
}
}
}
return dp[amount] > amount ? -1:dp[amount];
}
11-14
544
12-03
349