98. Leetcode 518. 零钱兑换 II (动态规划-完全背包)
完全背包:
如果求组合数: 外层for遍历循环物品,内层for遍历循环背包容量
如果求排列数: 外层for遍历循环背包容量, 内层for遍历循环物品
步骤一、确定状态:
确定dp数组及下标含义
这里的dp是大小为amount的一维数组, dp[i]表示的是装满容量为i的背包, 有多少种装法
步骤二、推断状态方程:
dp[j] += dp[j-coins[i]]
步骤三、规定初始条件:
初始条件:
全局初始化为0, dp[0]=1
步骤四、计算顺序:
对于物品, 依然是正向遍历,而对于背包,也是正向遍历,因为这里的物品 可以取多次
class Solution:def change(self, amount: int, coins: List[int]) -> int:if amount == 0:return 1dp = [0] * (amount + 1)dp[0] = 1for i in range(len(coins)): # 遍历物品for j in range(coins[i], amount+1): # 遍历背包容量dp[j] += dp[j-coins[i]]return dp[amount]
98. Leetcode 518. 零钱兑换 II (动态规划-完全背包)相关推荐
- leetcode:518. 零钱兑换 II
518 零钱兑换 II 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/coin-change-2/ 给你一个整数数组 coins 表示不同面额的硬币 ...
- LeetCode 518. 零钱兑换 II(动态规划)
1. 题目 给定不同面额的硬币和一个总金额. 写出函数来计算可以凑成总金额的硬币组合数. 假设每一种面额的硬币有无限个. 示例 1: 输入: amount = 5, coins = [1, 2, 5] ...
- leetcode 518. 零钱兑换 II
难度:中等 频次:28 题目: 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额. 请你计算并返回可以凑成总金额的硬币组合数.如果任何硬币组合都无法凑出总金额, ...
- leetcode 518 零钱兑换II
题目 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额. 请你计算并返回可以凑成总金额的硬币组合数.如果任何硬币组合都无法凑出总金额,返回 0 . 假设每一种面 ...
- 【必备算法】动态规划:LeetCode题(六)322. 零钱兑换,518. 零钱兑换 II
322. 零钱兑换² 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1. 示例 1: ...
- 【leetcode题解——动态规划之完全背包】518.零钱兑换II(python版本详解+表格+dp五部曲)
518. 零钱兑换 II 重点: 本题求组合数,而非排列数. 例如示例: 5 = 2 + 2 + 1 5 = 2 + 1 + 2 这是一种组合,都是 2 2 1,而(2,2,1)(2,1,2)为两种排 ...
- 代码随想录44——动态规划:完全背包理论基础、518零钱兑换II、377组合总和IV
文章目录 1.完全背包理论基础 2.518零钱兑换II 2.1.题目 2.2.解答 3.377组合总和IV 3.1.题目 3.2.解答 4.组合和排列问题的便利顺序 4.1.组合问题 4.2.排列问题 ...
- 518. 零钱兑换 II golang动态规划
518. 零钱兑换 II 给定不同面额的硬币和一个总金额.写出函数来计算可以凑成总金额的硬币组合数.假设每一种面额的硬币有无限个. 示例 1: 输入: amount = 5, coins = [1, ...
- java刷题--518零钱兑换II
java刷题--518零钱兑换II 题目 代码 结果 题目 代码 class Solution {public int change(int amount, int[] coins) {int[] d ...
最新文章
- 狄利克雷卷积莫比乌斯反演证明
- leetcode 72. 编辑距离
- Zend Studio 安装 PyDev 插件后报错
- react报错this.setState is not a function
- python读取网站_科学网—python 获取网址 - 林清莹的博文
- Codeforces 1181
- HDU - 2874 Connections between cities(并查集+LCA)
- Python输出中文乱码问题
- 【报告分享】华为:汽车大势所趋,赋能者到引领者.pdf(附下载链接)
- 操作系统课设 Nachos 实验六、七、八:Nachos 用户程序与系统调用、地址空间的扩展、系统调用 Exec() 与 Exit()
- 电压传感器: 工作原理、类型及电路图
- 计算机硬盘小影响,系统C盘容量太小有哪些危害?又要如何扩容呢?今天再说一遍!...
- 百度世界推出“轻应用” :人人都可开发
- 【转载】SAP物料基本计量单位的更改
- 阿里云 RDS CPU性能优化
- 捕获组合键 键盘组合键
- 阿里定向广告最新突破:面向下一代的粗排排序系统 COLD
- rac archiving
- cpuz不显示服务器内存,cpu-z怎么看不到内存频率
- ajax页面拼接html,ajax请求拼接html代码
热门文章
- C++使用GDI+实现图片格式转换
- Swift和Objective-C的运行时编程
- getcwd()和dirname(__FILE__)的区别
- 【Android】Vitamio 4.0 公测版发布(2013-05-28)
- 免费图标字体:一套圣诞节相关的图标字体
- 网络游戏,原罪和救赎
- 斐波那契 非递归写法 非递归实现
- 《图解HTTP》读书笔记--第8章 确认访问用户身份的认证
- Leetcode376摇摆序列--贪心+自动机
- java类与对象_Java类与对象