【发布时间】:2021-12-25 07:10:32
【问题描述】:
我一直在试图弄清楚是否有办法获得用于找零的最佳最小硬币集。
贪心算法有一个问题,例如如果我们有一组硬币 {1, 5, 6, 9},我们想要得到值 11。贪心算法会给我们 {9,1, 1} 但最佳解决方案是 {5, 6}
通过阅读site,我发现这种方法可以为我们提供所需的最少硬币总数。有没有办法从中得到一套硬币?
【问题讨论】:
-
更新动态规划时,只需保留一些数组
last_coin[],其中last_coin[i]等于最后添加的任何一个硬币,以便获得最佳硬币子集的总和到i。然后,可以通过从i开始并追溯至i - last_coin[i]直到达到 0 来找到总和为一个数字的实际硬币集合。 -
@Telescope 如果您不介意可以通过代码向我展示我们将如何做到这一点吗?
标签: math dynamic-programming greedy