【发布时间】:2013-02-06 04:41:44
【问题描述】:
我一直在寻找Change-making problem 的好解决方案,但我发现了这段代码(Python):
target = 200
coins = [1,2,5,10,20,50,100,200]
ways = [1]+[0]*target
for coin in coins:
for i in range(coin,target+1):
ways[i]+=ways[i-coin]
print(ways[target])
我理解代码的字面意思没有问题,但我不明白为什么它有效。 有人可以帮忙吗?
【问题讨论】:
-
除了所有很棒的答案之外,这个reddit.com/r/algorithms/comments/70wo52/… 也完美地回答了它。
标签: python algorithm dynamic-programming