Skip to content

322零钱兑换

code

javascript
/**
 * @param {number[]} coins
 * @param {number} amount
 * @return {number}
 */
var coinChange = function (coins, amount) {
  let dp = new Array(amount + 1).fill(Infinity);
  dp[0] = 0;
  for (let i = 1; i < amount + 1; i++) {
    for (coin of coins) {
      if (i < coin) {
        continue;
      }
      dp[i] = Math.min(dp[i], 1 + dp[i - coin]);
    }
  }
  return dp[amount] === Infinity ? -1 : dp[amount];
};

总结

  1. 高阶练手题,但是真容易翻车其实
  2. 感觉有点像一层层浪打浪,这种题其实写着还蛮爽的
  3. 注意数组长度,末尾索引,这些,然后注意序号能不能够coin减要加判断
  4. 反正只要记住了infinity,这个就还好