1def coin_change(coins, amount):
2 dp = [amount + 1] * (amount + 1)
3 dp[0] = 0
4 for coin in coins:
5 for current in range(coin, amount + 1):
6 dp[current] = min(dp[current], dp[current - coin] + 1)
7 return dp[amount] if dp[amount] != amount + 1 else -1