问题标签 [coin-change]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dynamic-programming - 硬币找零算法 - 具有一维数组的 DP
我在这里遇到了 Coin Change 问题的解决方案:Coin Change。在这里,我能够理解第一种递归方法,第二种方法使用 DP 和 2D 数组。但我无法理解第三种解决方案背后的逻辑。
据我所知,最后一种方法适用于考虑硬币兑换中使用的硬币顺序的问题。我对么?如果我错了,谁能解释我。
php - PHP:硬币找零难题
我正在将 Advent of Code 作为练习 TDD 和学习 PHPSpec 的一种方式。我被困在第 17 天,这本质上是硬币找零难题。
精灵们又买了太多的蛋酒——这次是 150 升。要将其全部装入冰箱,您需要将其移入较小的容器中。您清点可用容器的容量。
例如,假设您有大小为 20、15、10、5 和 5 升的容器。如果您需要储存 25 升,有四种方法可以做到:
- 15 和 10
- 20和5(前5)
- 20和5(第二个5)
- 15、5 和 5
完全装满所有容器,有多少种不同的容器组合可以完全装满 150 升蛋酒?
这是我的代码。我使用上面的示例编写了一个测试。该combinations
方法应按4
示例返回,但它返回 3。它似乎无法处理有多个 5 升容器的事实。
请问有什么建议吗?
algorithm - Determine if you can make change with N denominations using each denomination only once and with at most k coins
This is a version of the coin-changing problem. As such, it is a dynamic programming problem.
I know how to determine if you can make change if either you can use at most one coin of each denomination or if you can use at most k coins, but not both.
javascript - JavaScript - 这个硬币找零算法有什么问题
我正在尝试使用贪婪算法来计算达到 JavaScript 金额所需的最小硬币数量
返回结果将是一个数组,由每个级别的硬币数量组成
我决定制作一个可以解决这个问题的函数,但它不起作用
calculateChange 函数接受两个参数,一个硬币值数组和金额。
第一步是初始化一个 sum 变量,该变量显示已调度的更改量。我还将创建一个数组变量,该变量将保存某个硬币已分配的次数。
为此,我将遍历硬币数组并将所有值设置为 0。如果我不知道不同硬币值的数量,这一点很重要
接下来我想有一个while条件来检查金额是否已达到
如果没有,我将启动一个循环遍历所有硬币值。至于贪心算法,随着指数的增加,币值下降。这是为了使用尽可能少的硬币
为了防止向下跳硬币层次结构,将在此 for 循环中嵌套一个 while 循环。这个 while 循环将检查最大的硬币是否仍然可以使用。
如果不满足循环条件,则 while 循环将结束。for 循环将通过增加索引来继续。我们将向下移动到下一个较低级别的硬币。该过程将重复
我期待的输出是这个
这意味着 2 个 50s、1 个季度、1 个角钱和 2 个便士
在这个函数中,this 应该代表 dispatched 的值,也就是返回值。运行上面的代码,我没有得到返回值
我能得到的唯一解释是我使用错误的循环。即使在检查时我也看不到
我在这里想念什么。非常感谢您的见解
python - 使用无界背包python的硬币找零功能
我正在尝试编写一个硬币找零函数。这个想法是我有无限的面额和任何价值,并试图看看我能得到什么样的改变。我认为这可以像无界背包程序一样完成,但我得到一个奇怪的输出,我不明白它的含义。我想可能是因为我正在输入值和小数,并想将函数中的值更改为浮动,但这给了我一个错误并且不会运行程序。有人可以解释我当前的输出在说什么吗?有可能用小数做这种事情吗?我该如何改进呢?
OUTPUT: [0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.060000000000000005, 0.07, 0.08, 0.09, 0.1, 0.11000000000000001, 0.12000000000000001, 0.13, 0.14, 0.15000000000000002, 0.16000000000000003, 0.17000000000000004, 0.18000000000000005, 0.19000000000000006, 0.20000000000000007]
java - 获取任何价值的纸币和硬币的数量
我想制作一个小系统,可以为我返回任何价值的优化数量的纸币和硬币。
这是我的代码:
嗯,这几乎是正确的,钞票运作良好,我的问题是硬币。
以下是一些输入:
- 576.73 // 正确打印
- 8.45 // 打印不正确
- 9.45 // 打印不正确,看下面:
实际输出:
预期输出:
PS:我不会发布所有预期的输出,因为它会让问题比现在更大,但是如果你需要,我可以发布。提前致谢。
algorithm - 扭转硬币变化(最小化重量阵列)
我正在构建一个应用程序,用于少于 10 个不同重量的锻炼。例如:锻炼可能需要 {30,40,45,50,55,65,70,80} 的重量。
现在,用户不必确定要抓取多少 45 磅、35 磅、25 磅等重量,并且应用程序可以显示一个表格,其中包含所需的每种尺寸的重量数量,这将是一件好事。
我的问题是,鉴于我们有无限数量的 5 磅、10 磅、25 磅、35 磅和 45 磅的权重,那么能够对阵列中的每个权重求和的最佳数量是多少?最佳是首先总重量最少,然后总重量最轻。
例如,假设我想优化 {25, 35, 45},那么如果我的答案数组是 {num_5lbs, num_10lbs, num_25lbs, num_35lbs, num_45lbs} 我们可以做 {0,0,1,1,1} 但然后总计为 25+35+45=105 磅。我们也可以做 {0,2,1,0,0},我认为这是最佳的,因为它是 3 个重量,但总重量只有 45 磅。
另一个例子,假设我想优化 {30,40,50},那么我们可以有 {1,2,1,0,0} 和 {1,1,1,1,0}。两者都使用4个砝码,但前者一共5+20+25=50磅,而后者一共5+10+25+35=75磅。
c++ - 硬币找零的贪心算法c ++
所以,我正在创建一个硬币兑换算法,它采用 N 值和任意数量的面额,如果它没有 1,我必须自动包含 1。我已经这样做了,但是现在有一个缺陷,我有 2 个矩阵,我需要使用其中的 1 个。是否可以重写 S[i] 矩阵并仍然增加数组的大小....另外,我怎样才能找到最大面额和第二高的面额,直到最小的面额?我应该将其从最高到最低进行排序以使其更容易,还是有一种更简单的方法可以一个接一个地寻找它们?
prolog - 试图解决这个难题,但没有找到正确的答案。这是生成的代码
您有 5、10、20、50、100 的硬币,
其重量分别为 2g、3g、10g、25g、50g。你的钱包很弱,所以你不能超过 391 克的重量。你只能在里面放 3 个相同价值的硬币。你能说一下你钱包的最大价值是多少吗?
询问 :::change([(Five,Ten,Twenty,Fifty,Hundred),W,S])
c++ - 递归硬币找零c ++
每次递归调用最小函数时,我的程序似乎都会崩溃。谁能告诉我为什么它会崩溃。在我调用最小函数后它会立即冻结。是因为我使用矢量吗?