【发布时间】:2017-05-24 12:08:15
【问题描述】:
动态编程更改问题(有限硬币)。 我正在尝试创建一个作为 INPUT:
的程序int coinValues[]; //e.g [coin1,coin2,coin3]
int coinLimit[]; //e.g [2 coin1 available,1 coin2 available,...]
int amount; //the amount we want change for.
输出:
int DynProg[]; //of size amount+1.
并且输出应该是一个大小为 amount+1 的数组,其中每个单元格代表我们需要为单元格的索引数量提供零钱的最佳硬币数量。
示例: 假设我们在索引 5 处有 Array 的单元格,其内容为 2。 这意味着为了给 5(INDEX) 的数量找零,你需要 2(cell's content) 硬币(最优解)。
基本上我需要这个 video(C[p]) 的第一个数组的输出 . LIMITED COINS 的大DIFFERENCE 完全相同的问题。 Link to Video.
注意:看视频理解,忽略视频的第二个数组,记住我不需要组合,而是DP数组,所以我可以找到哪些硬币作为找零。
谢谢。
【问题讨论】:
-
你在算法实现上有什么问题?
-
视频用无限金币解释了这个问题。我想要一个硬币有限的实现。我在任何地方都找不到这个版本,所有算法都是错误的,或者输出了组合的数量。
-
你在问如何用最少的硬币得到价值x?
-
Stack Overflow 上有很多类似的问题,例如 stackoverflow.com/questions/4198210/… 和 stackoverflow.com/questions/28910971/…。事实上,当我用你的问题标题搜索谷歌时,我在 Stack Overflow 上获得了 343 次点击。这些问题都没有帮助到你吗?
-
@beaker:我说的第一个问题只是关于组合。第二个是关于无限硬币。我找不到合适的实现。
标签: algorithm dynamic-programming coin-change