0
点赞
收藏
分享

微信扫一扫

Leetcode-322 零钱兑换

查拉图斯特拉你和他 2022-04-02 阅读 63

在这里插入图片描述

class Solution(object):
    def coinChange(self, coins, amount):
        """
        :type coins: List[int]
        :type amount: int
        :rtype: int
        """

        if amount == 0: return 0
        coins.sort()
        if coins[0] > amount: return -1

        dp = [0] + [float('inf')] * amount # dp[i]: 硬币能组成金额为i所需最小个数
        for coin in coins: # 每次新拿一种硬币
            for i in range(coin, amount + 1): # 从大于等于这个硬币的面值开始,这个硬币才可能开始起作用
                dp[i] = min(dp[i], dp[i - coin] + 1)
        
        return dp[-1] if dp[-1] != float('inf') else -1


举报

相关推荐

0 条评论