class Solution {
public int coinChange(int[] coins, int amount) {
int m = coins.length;
int n = amount;
int[] F = new int[n+1];
Arrays.fill(F,amount+1);
F[0] = 0;
for(int i=1;i<=n;i++){
for(int j=0;j<m;j++){
if(i>=coins[j]){
//考虑新的硬币组成当前金币为i的数量和原来组成金币i的数量取最小值
F[i] = Math.min(F[i],F[i-coins[j]]+1);
}
}
}
return F[amount]>amount?-1:F[amount];
}
}
共以下 9 个回答
做过又忘了
背包问题
class Solution {
public int coinChange(int[] coins, int amount) {
// 记录每一个金额所需要的硬币 个数 遍历硬币数组 可以取 金额-硬币 或者硬币自身
int dp[]=new int [amount+1];
}
8.9 周三
Day30:下面是代码