322. 零钱兑换
class Solution {
public int coinChange(int[] coins, int amount) {
int[] dp = new int[amount + 1];
dp[0] = 0;
for(int i = 1; i <= amount;i++){
dp[i] = 10010;
for(int j = 0;j < coins.length;j++){
if(i - coins[j] >= 0) dp[i] =Math.min(dp[i - coins[j]] + 1,dp[i]);
}
}
return dp[amount] == 10010? -1 : dp[amount];
}
}
dp[i]的含义是,数量为i的情况下,组成i的最小硬币个数。
开始理解一些这种套路了诶
该博客讨论了一种使用动态规划算法解决零钱兑换问题的方法。代码示例展示了如何用Java实现,其中`dp[i]`表示组成金额`i`所需的最小硬币数。通过遍历所有可能的硬币类型并更新状态数组,找到最优解。如果无法组成指定金额,则返回-1。
1219

被折叠的 条评论
为什么被折叠?



