力扣hot100_动态规划(2)_python版本

一、322. 零钱兑换

在这里插入图片描述

  • 代码:
class Solution:
    def coinChange(self, coins: List[int], amount: int) -> int:
        @cache
        def dfs(i, c):
            if i<0:
                return 0 if c==0 else inf
            if c < coins[i]:
                return dfs(i-1, c)
            return min(dfs(i-1, c), dfs(i, c-coins[i])+1)
        ans=dfs(len(coins)-1, amount)
        return ans if ans<inf else -1