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]
相关推荐
alibaba_张无忌35 分钟前
金融学期末速成笔记
笔记·金融
我是聪明的懒大王懒洋洋43 分钟前
力扣力扣力:动态规划入门(1)
算法·leetcode·动态规划
winfredzhang1 小时前
如何使用 python 中的 Pillow 创建可自定义的图标生成器
python·pillow·图标·png
qq_273900231 小时前
pytorch detach方法介绍
人工智能·pytorch·python
虞书欣的62 小时前
Python小游戏24——小恐龙躲避游戏
开发语言·python·游戏·小程序·pygame
Komorebi.py2 小时前
【Linux】-学习笔记03
linux·笔记·学习
FHYAAAX2 小时前
【机器学习】任务十:从函数分析到机器学习应用与BP神经网络
开发语言·python
PyAIGCMaster2 小时前
python环境中,敏感数据的存储与读取问题解决方案
服务器·前端·python
程序员劝退师_2 小时前
Kafka学习笔记
笔记·学习·kafka
何曾参静谧3 小时前
「Py」模块篇 之 PyAutoGUI库自动化图形用户界面库
运维·python·自动化