66.零钱兑换

作者: wo不是黄蓉 | 来源:发表于2022-02-26 23:17 被阅读0次

day15: 322. 零钱兑换(中等)
考点:动态规划
思路:也是所谓的填表格,但是要找好填表格的角度。
日常思维:循环所有数组,用目标元素除以当前元素的值存为结果,如果整除则存入,如果没有整除则查看余数中的值是否存在于当前数组中,存在则返回商+余数的硬币个数,每次求最小值。
动态规划:可以将其划分成当总数为[1,amount]时,用[1,2,5]硬币分别需要多少个可以将其填满,将求得的结果缓存。
参考leecode

image.png
var coinChange = function (coins, amount) {
  //amount为0直接返回
  if (amount == 0) return 0;
  //没有零钱
  if (coins.length == 0) return -1;

  let dp = new Array(amount + 1).fill(Infinity);
  dp[0] = 0;
  //计算使用icon找零i需要多少个硬币
  for (let i = 0; i <= amount; i++) {
    for (let icon of coins) {
      //i-icon<0说明不够找,还用初始化的值。否则说明够找
      if (i - icon >= 0) {
        dp[i] = Math.min(dp[i], dp[i - icon] + 1);
      }
    }
  }
  return dp[amount] === Infinity ? -1 : dp[amount];
};

console.log(coinChange([1, 2, 5], 11));

相关文章

  • 66.零钱兑换

    day15: 322. 零钱兑换[https://leetcode-cn.com/problems/coin-ch...

  • LeetCode-322-零钱兑换

    LeetCode-322-零钱兑换 322. 零钱兑换[https://leetcode-cn.com/probl...

  • LeetCode 零钱兑换 背包问题

    题目地址:322.零钱兑换 leetcode地址518.零钱兑换2 leetcode地址类似题目:123.股票问题...

  • 动态规划

    1. 零钱兑换 零钱兑换 (Medium) 力扣 题目描述:给定不同面额的硬币 coins 和一个总金额 amou...

  • 零钱兑换

    给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。...

  • 零钱兑换

    问题描述 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的...

  • 零钱兑换

    题目描述:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的...

  • 零钱兑换

    题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/coin...

  • 零钱兑换

    题目: 题目的理解: 看似很简单的题目,用了一天时间编写算法,但是结果是一直计算超时,!_!参考了其他的解题思路,...

  • 零钱兑换

    题目地址:https://leetcode-cn.com/problems/coin-change/题解: 一.思...

网友评论

    本文标题:66.零钱兑换

    本文链接:https://www.haomeiwen.com/subject/xsecrrtx.html