【发布时间】:2019-04-13 01:30:33
【问题描述】:
我正在尝试获取目标金额总和的所有硬币。我能够获得所需的硬币数量。我将如何解决它。
您可以无限使用相同的硬币
例如。 change([2], 10) => [2, 2, 2, 2, 2]
def change(coins, amount):
result = [amount+1] * (amount+1)
result[0] = 0
for i in range(1, amount+1):
for coin in coins:
if i >= coin:
result[i] = min(result[i], result[i-coin] + 1)
if result[amount] == amount+1:
return -1
return result[amount]
change([1, 2, 5,8], 7) => [5, 2] 顺序无关紧要。
【问题讨论】:
-
请更详细地解释您想要发生的事情。
-
你想要动态规划的所有结果还是最好的结果?如果你想要所有结果,动态规划在这里不起作用。
标签: python dynamic-programming