当前位置: 首页 > news >正文

【leetcode100】零钱兑换Ⅱ

1、题目描述

给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。

请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。

假设每一种面额的硬币有无限个。 

题目数据保证结果符合 32 位带符号整数。

    示例 1:

    输入:amount = 5, coins = [1, 2, 5]
    输出:4
    解释:有四种方式可以凑成总金额:
    5=5
    5=2+2+1
    5=2+1+1+1
    5=1+1+1+1+1
    

    示例 2:

    输入:amount = 3, coins = [2]
    输出:0
    解释:只用面额 2 的硬币不能凑成总金额 3 。
    

    示例 3:

    输入:amount = 10, coins = [10] 
    输出:1

    2、初始思路

    2.1 思路

    每个硬币可以重复取,这是一道完全背包问题。递推公式为:

    dp[j] += dp[j-coin]

    2.2 代码

    class Solution:def change(self, amount: int, coins: List[int]) -> int:dp = [0] * (amount+1)dp[0] = 1for coin in coins:for j in range(coin, amount+1):dp[j] += dp[j-coin]return dp[amount]

    相关文章:

  • 物联网赋能玻璃制造业:实现设备智能管理与生产协同
  • Ubuntu 上安装 Conda
  • 安装 Conda 环境
  • csv数据的写入
  • SharpMap与TerraLib:C#与C++开源GIS库
  • 蓝桥杯算法实战分享:C/C++ 题型解析与实战技巧
  • 【“星睿O6”AI PC开发套件评测】GPU矩阵指令算力,GPU带宽和NPU算力测试
  • npm i 出现permission denied
  • AtCoder 第402场初级竞赛 A~E题解
  • JavaScript 渲染内容爬取实践:Puppeteer 进阶技巧
  • Socket
  • 【STL】unordered_map
  • 【速写】多LoRA并行衍生的一些思考
  • Nginx:前后端分离配置(静态资源+反向代理)
  • navicat导入sql文件 所有问题解决方法集合
  • ios开发中xxx.debug.dylib not found
  • day21 | 26暑期实习
  • windows server2019 内网离线安装mysql5.7方式;windows server2019安装软件提示丢失msvcp100.dll问题处理
  • char32_t、char16_t、wchar_t 用于 c++ 语言里存储 unicode 编码的字符,给出它们的具体定义
  • Linux系统编程 day9 SIGCHLD and 线程
  • 澳大利亚联邦选举投票正式开始
  • 江西德安回应“义门陈遗址建筑被没收”:将交由规范的义门陈相关社会组织管理
  • 这就是上海!
  • 腾讯重构混元大模型研发体系:成立大语言和多模态模型部,提升AI长期技术作战能力
  • 哈莉·贝瑞、洪常秀等出任戛纳主竞赛单元评委
  • 铁路五一假期运输今日启动,预计发送旅客1.44亿人次