我正在尝试获得目标金额总和的所有硬币。我能够获得所需数量的硬币。我将如何解决它。
您可以无限地使用相同的硬币,例如。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]
Run Code Online (Sandbox Code Playgroud)
change([1, 2, 5,8], 7)=>[5, 2]顺序并不重要。