零钱兑换
```js const coinChange = (coins, amount) => { if (!amount) { return 0; }
let dp = Array(amount + 1).fill(Infinity);
dp[0] = 0;
for (let i = 0; i < coins.length; i++) {
for (let j = coins[i]; j <= amount; j++) {
dp[j] = Math.min(dp[j - coins[i]] + 1, dp[j]);
}
}
return dp[amount] === Infinity ? -1 : dp[amount];
} ```
这段代码展示了如何使用动态规划算法解决找零问题。它创建一个数组`dp`来存储到给定金额的最小硬币数,并初始化为无穷大。然后通过双重循环更新`dp`数组,找到最优解。如果最终结果是无穷大,则表示无法凑出指定金额,返回-1;否则返回最小硬币数。
1226

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



