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]
相关推荐
python机器学习ML12 小时前
EconML实战:使用DeepIV、DROrthoForest与CausalForestDML进行因果推断详解
人工智能·python·机器学习·数据挖掘·数据分析·scikit-learn·sklearn
小年糕是糕手12 小时前
【C++】模板初阶
java·开发语言·javascript·数据结构·c++·算法·leetcode
线程A12 小时前
Python中 session flush 和 commit 的区别
数据库·python·oracle
吴佳浩20 小时前
大模型量化部署终极指南:让700亿参数的AI跑进你的显卡
人工智能·python·gpu
diegoXie21 小时前
Python / R 向量顺序分割与跨步分割
开发语言·python·r语言
呱呱巨基21 小时前
Linux 进程概念
linux·c++·笔记·学习
七牛云行业应用21 小时前
解决OSError: No space left... 给DeepSeek Agent装上无限云硬盘
python·架构设计·七牛云·deepseek·agent开发
BoBoZz1921 小时前
CutWithScalars根据标量利用vtkContourFilter得到等值线
python·vtk·图形渲染·图形处理
失散1321 小时前
Python——1 概述
开发语言·python
夏乌_Wx21 小时前
练题100天——DAY23:存在重复元素Ⅰ Ⅱ+两数之和
数据结构·算法·leetcode