dp数的分解

class Solution:
    def coinChange(self, coins: List[int], amount: int) -> int:
        dp = [float('inf')] * (amount + 1)
        dp[0] = 0

        for coin in coins:
            for x in range(coin,amount+1):
                dp[x]=min(dp[x],dp[x-coin]+1)
        return dp[amount] if dp[amount]!=float('inf') else -1

借鉴了图算法的思路,视为从0到amount最短路径,利用coin反复更新最小距离

posted @ 2025-07-19 11:23  邓佑孤  阅读(4)  评论(0)    收藏  举报