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]
相关推荐
m0_663234011 分钟前
python数据分析之爬虫基础:selenium详细讲解
爬虫·python·数据分析
yuwinter19 分钟前
鸿蒙HarmonyOS学习笔记(8)
笔记·学习
Bruce_Liuxiaowei41 分钟前
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序
python·小程序·节日
凡人的AI工具箱1 小时前
每天40分玩转Django:Django Email
数据库·人工智能·后端·python·django·sqlite
风抽过的烟头1 小时前
Python提取字符串中的json,时间,特定字符
前端·python·json
weixin_402486341 小时前
OSError: [Errno 98] Address already in use pycharm 远程
ide·python·pycharm
1101 11012 小时前
STM32-笔记12-实现SysTick模拟多线程流水灯
笔记·stm32·嵌入式硬件
美式小田2 小时前
Cadence学习笔记 12 PCB初始化设置
笔记·嵌入式硬件·学习·cadence
kiritio10245132 小时前
kipotix4靶机实战
笔记·安全
席万里2 小时前
【MySQL学习笔记】关于索引
笔记·学习·mysql