小编Dan*_*zyk的帖子

如何设计此解决方案以应对来自 Algoexpert.io 的不可构造变更挑战

我正在解决 algoexpert.io 编码挑战,但我无法理解题为“不可构造变更”的问题之一的建议解决方案

下面是挑战题:

给定一个表示您拥有的硬币价值的正整数数组,编写一个函数,该函数返回您无法创建的最小找零金额(最小金额)。给定的硬币可以具有任何正整数值并且不一定是唯一的(即,您可以拥有多个相同值的硬币)。

例如,如果给您硬币 = [1, 2, 5],则您不能创建的最小零钱金额为 4。创建是 1。

// O(nlogn) time, O(n) size.
function nonConstructibleChange(coins) {
  coins = coins.sort((a, b) => a - b); // O(nlogn) time operation
  let change = 0;

  for (coin of coins) {
    if (coin > change + 1) return change + 1;
    change += coin;
  }

  return change + 1;
}
Run Code Online (Sandbox Code Playgroud)

我的问题

我不完全确定解决方案的作者是如何得出这样的直觉的

if the current coin is greater than `change + 1`, the smallest impossible change …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm

10
推荐指数
2
解决办法
783
查看次数

标签 统计

algorithm ×1

javascript ×1