编辑代码

def coinChange(coins, amount):
    MAX = float('inf')
    dp = [0] + [MAX] * amount

    for i in range(1, amount + 1):
        dp[i] = min([dp[i - c] if i - c >= 0 else MAX for c in coins]) + 1

    return dp[amount] if dp[amount] != MAX else -1

# 示例
coins = [1, 2, 5]
amount = 11
print(coinChange(coins, amount))