请在下面的链接中查看最小硬币兑换问题的解决方案
http://techieme.in/minimum-number-of-coins/
在这里,作者假设
面额数组按升序排列。
我的问题是,为什么面额数组的顺序很重要。
下面的链接中也采用了类似的假设(请注意,作者在这里解决的是硬币兑换的不同方式,而不是最小的硬币兑换)
http://www.algorithmist.com/index.php/Coin_Change
现在有了S1的限制
那么,假设我的面值数组是无序的,我会得到错误的硬币兑换方式吗?。
我的问题是,为什么面额数组的顺序很重要。
我认为,两个解决方案的顺序并不重要。如果你实现了这个解决方案,硬币阵列的无序给出了同样的答案。
正如我在这里发现的, 硬币兑换是指使用给定的一组面额d_1,找到对特定金额的美分、n进行兑换的方法的数量。。。。这是整数分割的一般情况,可以用动态规划来求解。 这个问题通常被问到:如果我们想改变N美分,并且我们有无限的S={S_1,S_2,......,S_m}价值的硬币,我们有多少种方法可以改变?(为了简单起见,顺序并不重要。) 我试过这个,效果很好。所以,当不同硬币的顺序确实重要时,我如何修改
我在理解动态规划中的硬币兑换问题时遇到了一个小问题。简单地说,我必须用最少数量的硬币来兑换一笔钱。 我有n种面值为1=v1的硬币
我试图自己解决LeetCode问题322。硬币兑换: 您将获得一个整数数组,表示不同面额的硬币,以及一个整数金额,表示总金额。 返回您需要的最少数量的硬币,以弥补该金额。如果这些硬币的任何组合都无法弥补这一数额,则返回-1。 你可以假设每种硬币的数量是无限的。 我似乎有一个错误,无法找出它。 我用DFS解决,基本上是说当目标达到0时,只需将所有的聚集在一个数组中,并动态地保持尽可能短的结果。这是问
我编写的代码使用动态规划解决了基本的硬币兑换问题,并给出了进行兑换所需的最小硬币数量。但是我想把每个硬币的数量存储在最小的数字里。 我试图做的是初始化数组,就像散列一样,只要找到,它就会增加的数量,即。但这并不是我想要的方式,因为它每次发现对应于时都会添加硬币。因此,在最终答案中,数字不是硬币的最终计数。 代码如下:
但是我们不能这样做吗:(是给定的可用硬币的排序集,和是它的下标,是给定的最高价值硬币) 我写的东西有什么问题吗?虽然解决方案不是动态的,但不是更有效吗?
我试图使用贪婪算法来计算在JavaScript中达到一定数量所需的最低硬币数量 返回结果将是一个数组,由每个级别的硬币数量组成 我决定做一个函数来解决这个问题,但它不起作用 calculateChange函数包含两个参数:硬币值数组和金额。 第一步是初始化一个sum变量,该变量显示已调度的更改量。我还将创建一个数组变量,该变量将保存某个硬币的分配次数。 为此,我将迭代coins数组并将所有值设置为