小编mat*_*teo的帖子

返回数组的动态编程硬币找零

我正在尝试获得目标金额总和的所有硬币。我能够获得所需数量的硬币。我将如何解决它。

您可以无限地使用相同的硬币,例如。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]顺序并不重要。

python dynamic-programming

2
推荐指数
1
解决办法
2402
查看次数

标签 统计

dynamic-programming ×1

python ×1