【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
posted @ 2020-11-24 20:17  WangSJiNa  阅读(53)  评论(0)    收藏  举报