题目地址: 链接
思路: dp
ts
/*
* @lc app=leetcode.cn id=322 lang=typescript
*
* [322] 零钱兑换
*/
// @lc code=start
function coinChange(coins: number[], amount: number): number {
let dp = new Array(amount + 1).fill(Infinity);
dp[0] = 0;
for(let i = 0; i < coins.length; i ++) {
const coin = coins[i];
for(let j = 0; j <= amount - coin; j ++) {
if(dp[j] !== Infinity) {
dp[j + coin] = Math.min(dp[j + coin], dp[j] + 1)
}
}
}
return dp[amount] !== Infinity ? dp[amount] : -1
};
// @lc code=end