【发布时间】:2017-06-21 12:30:48
【问题描述】:
以下是最小硬币找零问题的蛮力解决方案。它需要一个 int 更改,这是需要进行的更改,以及一系列硬币面额。它返回进行该更改所需的最少硬币。
如何修改它以同时返回一个硬币数组?
例如,如果要求用值 [1, 2, 5] 找零 10 美分,它应该返回 2 个硬币 min 和一个数组 [0, 0, 2] 两个镍币。
def recMC(coinValueList,change):
minCoins = change
if change in coinValueList:
return 1
else:
for i in [c for c in coinValueList if c <= change]:
numCoins = 1 + recMC(coinValueList,change-i)
if numCoins < minCoins:
minCoins = numCoins
return minCoins
print(recMC([1,5,10,25],63))
【问题讨论】:
-
对我来说,这看起来像是来自某个解决问题的网站 (example) 的任务,您希望我们为您编写代码吗?你试过什么?
标签: python algorithm divide-and-conquer