作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
问题是让 n 美分随 25 美分、10 美分、5 美分和 1 美分变化,并使用最少的硬币总数。在四种面额分别为 25 美分、10 美分、5 美分和 1 美分的特殊情况下,我们有 c1 = 25、c2 = 10、c3 = 5 和 c4 = 1。
如果我们只有 25 美分、10 美分和便士(没有五分硬币) 可以使用,贪心算法会用六枚硬币找零30 美分——四分之一零五便士——而我们本可以使用三枚硬币,即三角硬币。
给定一组面额,我们如何判断贪婪方法是否创造了最优解?
最佳答案
您要问的是如何确定给定的硬币系统是否规范来解决找零问题。如果贪心算法总是给出最优解,则系统是规范的。您可以通过有限的步骤确定包含 1 美分硬币的硬币系统是否规范。详细信息以及某些情况下更有效的算法,请参阅 http://arxiv.org/pdf/0809.0400.pdf .
关于algorithm - 零钱: Greedy Approach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30138887/
我编写的代码使用动态规划解决了基本的硬币找零问题,并给出了找零所需的最少硬币数量。但我想将每个硬币的数量存储在最小数量中。 我想做的是初始化一个数组 count[]就像散列一样,它会增加 coin[j
问题是让 n 美分随 25 美分、10 美分、5 美分和 1 美分变化,并使用最少的硬币总数。在四种面额分别为 25 美分、10 美分、5 美分和 1 美分的特殊情况下,我们有 c1 = 25、c2
我是一名优秀的程序员,十分优秀!