518. 零钱兑换II(完全背包问题)

题目

题解

python 复制代码
class Solution:
    def change(self, amount: int, coins: List[int]) -> int:
        # 状态定义:dp[i][j]表示用前i种硬币,刚好凑齐面额j的方法有多少
        dp = [[0 for i in range(amount+1)] for j in range(len(coins)+1)]
        # base case
        for i in range(len(coins)+1):
            dp[i][0] = 1
        # 状态转移
        for i in range(1, len(coins) + 1):
            for j in range(1, amount + 1):
                # 第i枚硬币的面值小于要凑齐的面额,可以选择「用」和「不用」
                # 注意这里的判断条件是>=,与背包问题里的>有区别。
                if j - coins[i-1] >= 0:
                    dp[i][j] = dp[i-1][j] + dp[i][j - coins[i-1]]
                # 否则不能用
                else:
                    dp[i][j] = dp[i-1][j]
        return dp[len(coins)][amount]
相关推荐
自不量力的A同学16 分钟前
开源一站式智能终端 uniTerm v1.9.4 发布
笔记
钱栈up39 分钟前
番茄小说榜单爬虫失效排查:从页面路由变更到API参数映射的全流程复盘
python
唐璜Taro1 小时前
Agent Harness 系列 · 第 1 篇|Agent 不只是换一个更强的模型
人工智能·python
91刘仁德1 小时前
C++ 继承和多态 设计模式
c语言·c++·笔记
泡茶喝茶写代码1 小时前
量化数据进阶:多维实战篇(第 11 篇):历史涨跌停价:涨跌停序列与止损线测算
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据api
库玛西2 小时前
哈夫曼树与前缀编码:数据压缩的贪心核心
c语言·c++·笔记·考研
ikun_文2 小时前
Django开启跨域请求
python·pycharm·django
外收内放2 小时前
Python与AI应用(项目开发实战:AI智能伴侣第三版)
python·学习·ai编程
别动我齐刘海2 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
Logintern092 小时前
“以一致的顺序获取锁“是预防死锁最核心、最有效的手段
python·postgresql·锁机制