【leetcode 233】 零钱兑换
经典的动态规划问题,记住状态转移方程,dp[i] = min{dp[i],dp[i-coin]+1},dp[i-coin]+1是加上当前的一枚硬币。
class Solution:
def coinChange(self, coins: List[int], amount: int) -> int:
dp = (amount+1)*[amount+1]
dp[0] = 0
for coin in coins:
for i in range(coin,amount+1):
dp[i] = min(dp[i],dp[i-coin]+1)
return dp[amount] if dp[amount]!=amount+1 else -1

浙公网安备 33010602011771号