解题思路
状态:
dp[i] = 组成金额i需要的最小金币数
方程:
dp[i] = min(dp[i - coin[x]]) + 1
0<=x<len(coins)
代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | class Solution:def coinChange(self, coins: List[int], amount: int) -> int:
 dp = [float('INF')] * (amount + 1)
 dp[0] = 0
 for i in range(1, amount + 1):
 for coin in coins:
 if coin > i:
 continue
 dp[i] = min(dp[i], dp[i-coin] + 1)
 return dp[amount] if dp[amount] != float('INF') else -1
 
 |