【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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章