【leetcode】完全背包总结
本文内容参考了代码随想录,并进行了自己的总结。
完全背包
关键点
● 每件物品有若干种状态:不选、选 1 件、选 2 件、…、选 n 件
代码
在代码上,只有重量的遍历方向和 01 背包不一样:
for(int i = 0; i < nums.length; i ++ )for(int j = nums[i]; j <= W; j ++ ) {dp[j] = Math.max(dp[j], dp[j - nums[i]);}
正序遍历,意味着每件物品可以选多次,一直往后叠加。
题目
问能装的最大容量,或者问能不能装满的这种题目,属性既是重量又是价值。
下面是代码随想录中,完全背包问题的总结。
题目 | 问题转换 | 属性拆解 |
---|---|---|
518. 零钱兑换 II 完全背包 恰好装满,求组合方案数 备注: 组合方案数,就是装的数的顺序不影响结果。比如 3 = 1 + 2 和 3 = 2 + 1 是同一种方案 | 给定背包容量amount,从coins中选若干个物品放入背包,问能装满的组合方案数 | 背包容量:amount。 物品体积:由于是选若干个硬币出来让他们的金额和等于 amount,所以物品的大小(体积)就是硬币金额。 物品价值:这一题没有价值这个维度,只是问背包装满的方案数。 物品数量:每个硬币可以选无数次。 |
377. 组合总和 Ⅳ 完全背包 恰好装满,求排列方案数 | 从nums中选若干个数,每个数可重复选择,放入容量为 target的背包,问放满的排列方案数。 | 背包容量:target。 物品体积:由于是选若干个数字出来让他们的和等于 target,所以物品的大小(体积)就是数值大小。 物品价值:这一题没有价值这个维度,只是问背包装满的方案数。 物品数量:每个数字可以选无数次。 |
https://kamacoder.com/problempage.php?pid=1067 完全背包 恰好装满,求排列方案数 | 从[1, m]中,选若干个数,每个数可选无数次,放入大小为n的背包,问放满的排列方案数 | 背包容量:n。 物品体积:由于是选若干个数字出来让他们的和等于 n,所以物品的大小(体积)就是数值大小。 物品价值:这一题没有价值这个维度,只是问背包装满的方案数。 物品数量:每个数字可以选无数次。 |
322. 零钱兑换 完全背包 恰好装满,求最小价值 | 给定n个数,选若干个数,每个数无限取,求能放满背包的最少数的个数。 给定n个数,选若干个数,每个数无限取,求恰好装满时,最小价值为多少? | 背包容量:n。 物品体积:由于是选若干个数字出来让他们的和等于 n,所以物品的大小(体积)就是数值大小。 由于是求最少数的个数,所以每个数的价值就是 1。 物品数量:每个数字可以选无数次。 |
279. 完全平方数 完全背包 恰好装满,求最小价值 | 从[1, sqrt(n)]中选若干个数,每个数可选无数次,将其平方放入大小为n的背包中,求能放满的最少数量 从[1, sqrt(n)]中选若干个数,每个数可选无数次,将其平方放入大小为n的背包中,求恰好装满时,最小价值为多少? | 背包容量:n。 物品体积:由于是选若干个数字出来让他们平方的和等于 n,所以物品的大小(体积)就是数值大小。 物品价值:由于是求最少数的个数,所以每个数的价值就是 1 物品数量:每个数字可以选无数次。 |
139. 单词拆分 完全背包 按顺序恰好装满,求是否存在方案 | 从n个字符串中选若干个字符串,每个字符串可重复使用,拼成长度为s.length()的字符串,问是否能拼成? 从n个物品中选若干个物品,每个物品可重复使用,放入大小为s.length()的背包,问是否能装满? 这n个物品是有顺序的,即必须按照一定的顺序拼成字符串s,所以求的是是否存在一种排列能够拼成字符串s,所以遍历顺序应该先遍历长度 | 背包容量:s.length()。 物品体积:由于是选若干个字符串出来让他们的长度等于 n,所以物品的大小(体积)就是数值大小。 物品价值:这一题没有价值这个维度,只是问背包装满是否存在方案。 物品数量:每个字符串可以选无数次。 |
- 单词拆分其实是的377. 组合总和 Ⅳ的子问题。
相同点:
- 每个字符串相当于每个数字,都是物品
- 每个字符串的长度相当于每个数字的数值大小,都是物品的大小
不同点:
-
- 单词拆分问题问的是,是否存在一种特定的排列能装满背包?这个特定的排列装满背包,就是指按照顺序拼接字符串。而给定的字符串 s 就表明了,字符串一定要按照这个顺序拼接
-
- 组合总和 Ⅳ问题问的是,能装满背包有多少种不同的排列方案,即任意一种放入的顺序都算一种方案
相关文章:
【leetcode】完全背包总结
本文内容参考了代码随想录,并进行了自己的总结。 完全背包 关键点 ● 每件物品有若干种状态:不选、选 1 件、选 2 件、…、选 n 件 代码 在代码上,只有重量的遍历方向和 01 背包不一样: for(int i 0; i < nums.length; i…...

【Linux】理解系统中一个被打开的文件
文件系统 前言一、C语言文件接口二、系统文件接口三、文件描述符四、struct file 对象五、stdin、stdout、stderr六、文件描述符的分配规则七、重定向1. 重定向的原理2. dup23. 重谈 stderr 八、缓冲区1. 缓冲区基础2. 深入理解缓冲区3. 用户缓冲区和内核缓冲区4. FILE 前言 首…...

k8s kubeadm部署安装详解
目录 kubeadm部署流程简述 环境准备 步骤简述 关闭 防火墙规则、selinux、swap交换 修改主机名 配置节点之间的主机名解析 调整内核参数 所有节点安装docker 安装依赖组件 配置Docker 所有节点安装kubeadm,kubelet和kubectl 定义kubernetes源并指定版本…...

RT-DETR算法优化改进: 下采样系列 | 一种新颖的基于 Haar 小波的下采样HWD,有效涨点系列
💡💡💡本文独家改进:HWD的核心思想是应用Haar小波变换来降低特征图的空间分辨率,同时保留尽可能多的信息,与传统的下采样方法相比,有效降低信息不确定性。 💡💡💡使用方法:代替原始网络的conv,下采样过程中尽可能包括更多信息,从而提升检测精度。 RT-DET…...

CocosCreator3.8源码分析
Cocos Creator架构 Cocos Creator 拥有两套引擎内核,C 内核 和 TypeScript 内核。C 内核用于原生平台,TypeScript 内核用于 Web 和小游戏平台。 在引擎内核之上,是用 TypeScript 编写的引擎框架层,用以统一两套内核的差异…...

(已解决)spingboot 后端发送QQ邮箱验证码
打开QQ邮箱pop3请求服务:(按照QQ邮箱引导操作) 导入依赖(不是maven项目就自己添加jar包): <!-- 邮件发送--><dependency><groupId>org.springframework.boot</groupId><…...

【蓝桥杯冲冲冲】[NOIP2001 普及组] 装箱问题
蓝桥杯备赛 | 洛谷做题打卡day26 文章目录 蓝桥杯备赛 | 洛谷做题打卡day26题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路 题解代码我的一些话 [NOIP2001 普及组] 装箱问题 题目描述 有一个箱子容量为 V V V,同时有 n n n 个物品,每…...

2024牛客寒假算法基础集训营1
文章目录 A DFS搜索M牛客老粉才知道的秘密G why外卖E 本题又主要考察了贪心B 关鸡C 按闹分配 今天的牛客,说是都是基础题,头昏昏的,感觉真不会写,只能赛后补题了 A DFS搜索 写的时候刚开始以为还是比较难的,和dfs有关…...

元素的显示与隐藏,精灵图,字体图标,CSSC三角
元素的显示与隐藏 类似网站广告,当我们点击关闭就不见了,但是我们重新刷新页面,会重新出现 本质:让元素在页面中隐藏或者显示出来。 1.display显示隐藏 2.visibility显示隐藏 3.overflow溢出显示隐藏 1.display属性(…...

最新!2024顶级SCI优化!TTAO-CNN-BiGRU-MSA三角拓扑聚合优化、双向GRU融合注意力的多变量回归预测程序!
适用平台:Matlab 2023版及以上 TTOA三角聚合优化算法,将在2024年3月正式发表在中科院1区顶级SCI期刊《Expert Systems with Applications》上。 该算法提出时间极短,目前以及近期内不会有套用这个算法的文献。新年伊始,尽快拿下…...
Flink SQL Client 安装各类 Connector、组件的方法汇总(持续更新中....)
一般来说,在 Flink SQL Client 中使用各种 Connector 只需要该 Connector 及其依赖 Jar 包部署到 ${FLINK_HOME}/lib 下即可。但是对于某些特定的平台,如果 AWS EMR、Cloudera CDP 等产品会有所不同,主要是它们中的某些 Jar 包可能被改写过&a…...

React18-模拟列表数据实现基础表格功能
文章目录 分页功能分页组件有两种接口参数分页类型用户列表参数类型 模拟列表数据分页触发方式实现目录 分页功能 分页组件有两种 table组件自带分页 <TableborderedrowKey"userId"rowSelection{{ type: checkbox }}pagination{{position: [bottomRight],pageSi…...

MySQL查询数据(十)
MySQL查询数据(十) 一、SELECT基本查询 1.1 SELECT语句的功能 SELECT 语句从数据库中返回信息。使用一个 SELECT 语句,可以做下面的事: **列选择:**能够使用 SELECT 语句的列选择功能选择表中的列,这些…...

AJAX-常用请求方法和数据提交
常用请求方法 请求方法:对服务器资源,要执行的操作 axios请求配置 url:请求的URL网址 method:请求的方法,如果是GET可以省略;不用区分大小写 data:提交数据 axios({url:目标资源地址,method…...

2024美国大学生数学建模竞赛美赛B题matlab代码解析
2024美赛B题Searching for Submersibles搜索潜水器 因为一些不可抗力,下面仅展示部分代码(很少部分部分)和部分分析过程,其余代码看文末 Dthxlsread(C:\Users\Lenovo\Desktop\Ionian.xlsx); DpDth(:,3:5); dy0.0042; dx0.0042; …...
【DouYing Desktop】
I) JD 全日制大专及以上学历; 2. 3年以上的IT服务支持相关工作经验 3. 有较强的桌面相关trouble shooting与故障解决能力,能够独立应对各类型桌面问题; 4. 具备基础的网络、系统知识,能够独立解决常见的网络、系统等问题…...

正则表达式与文本处理工具
目录 引言 一、正则表达式基础 (一)字符匹配 1.基本字符 2.特殊字符 3.量词 4.边界匹配 (二)进阶用法 1.组与引用 2.选择 二、命令之-----grep (一)基础用法 (二)高级用…...

IDEA中的Run Dashboard
Run Dashboard是IntelliJ IDEA中的工具【也就是View中的Services】,提供一个可视化界面,用于管理控制应用程序的运行和调试过程。 在Run DashBoard中,可以看到所有的运行配置,以及每个配置的运行状态(正在运行…...

【力扣白嫖日记】SQL
前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 1407.排名靠前的旅行者 表:Users 列名类型idintnamevarchar id 是该表中具有唯一值的列。name …...
自动化报告pptx-python|高效通过PPT模版制造报告(三)
这是自动化报告学习的第三篇了,前面两篇分别是: 自动化报告的前奏|使用python-pptx操作PPT(一)自动化报告pptx-python|如何将pandas的表格写入PPTX(二)本篇是逼着笔者看到JoStudio 大佬自己写的一个jojo-office 库,基于pptx-python开发成一套试用office软件的依赖,非…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据!该数据集源自2025年4月发表于《地理学报》的论文成果…...
FTXUI::Dom 模块
DOM 模块定义了分层的 FTXUI::Element 树,可用于构建复杂的终端界面,支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...
P10909 [蓝桥杯 2024 国 B] 立定跳远
# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上,小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时࿰…...