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))