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

代码随想录打卡第四十六天|完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ

完全背包理论

有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。
完全背包和01背包问题唯一不同的地方就是,每种物品有无限件
完全背包的物品是可以添加多次的,所以要从小到大去遍历

// 先遍历物品,再遍历背包
for(int i = 0; i < weight.size(); i++) { // 遍历物品for(int j = weight[i]; j <= bagWeight ; j++) { // 遍历背包容量dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}
}

遍历物品和背包的循环是否可以颠倒?
在纯完全背包中,是可以的

循环顺序与排列组合的关系

外层for循环遍历物品,内层for遍历背包的情况 是组合数 不考虑元素顺序 因为后面的物品拿了就不能再取前面的了 所以无法生成排列数

外层for循环遍历背包,内层for遍历物品的情况 是排列数 考虑元素顺序 这个时候 前后物品顺序被打乱可以被随便排列
链接

518.零钱兑换II

**题目:**给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带符号整数。
题目链接: 518.零钱兑换II
代码如下:

class Solution {public int change(int amount, int[] coins) {//可以凑成的方式//先背包再物品//dp[i]表示凑成i的方式if(amount==0){return 1;}if(amount==1){return 1;}int[] dp=new int[amount+1];dp[0]=1;for(int i=0;i<coins.length;i++){for(int j=coins[i];j<=amount;j++){dp[j]=dp[j]+dp[j-coins[i]];}}return dp[amount];}
}

377. 组合总和 Ⅳ

题目: 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。
题目数据保证答案符合 32 位整数范围。
题目链接: 377. 组合总和 Ⅳ
代码如下
此题是排列 所以背包在外 物品在内

class Solution {public int combinationSum4(int[] nums, int target) {int[] dp = new int[target + 1];dp[0] = 1;for (int i = 0; i <= target; i++) {for (int j = 0; j < nums.length; j++) {if (i >= nums[j]) {dp[i] += dp[i - nums[j]];}}}return dp[target];}
}

相关文章:

代码随想录打卡第四十六天|完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ

完全背包理论 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff08;也就是可以放入背包多次&#xff09;&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 完全背包和01背包问题唯一…...

【BP-Adaboost预测】基于BP神经网络的Adaboost的单维时间序列预测研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Origami Studio for Mac:塑造未来,掌握原型设计之巅

在当今高度竞争的设计领域&#xff0c;原型设计的重要性不言而喻。它不仅是沟通想法&#xff0c;也是测试和改进设计的关键环节。而现在&#xff0c;一款强大的原型设计工具——Origami Studio for Mac&#xff0c;正在席卷设计界&#xff0c;以其独特的功能和卓越的性能&#…...

UML类图中各箭头表示总结

UML类图中各箭头表示总结 1、泛化2、实现3、依赖4、关联5、聚合6、组合 在UML类图中&#xff0c;箭头关系是用来表示类之间的关系的。箭头关系的种类有以下几种&#xff1a; 1、泛化 泛化&#xff1a;表示类之间的继承关系。箭头从子类指向父类。箭头&#xff1a;实线空心三角…...

神经网络量化----为了部署而特别设计

引言:一般神经网络量化有两个目的: 为了加速,在某些平台上浮点数计算比较耗费时间,替换为整形可以加快运算为了部署,某些平台上只支持整形运算,比如在芯片中如果是第1个目的,则使用常规的量化手段就可以满足,将浮点数运算变成整形运算+较少的浮点运算 但是如果是第2个目…...

代码随想录算法训练营Day60|单调栈01

代码随想录算法训练营Day60|单调栈01 文章目录 代码随想录算法训练营Day60|单调栈01一、739. 每日温度二、496.下一个更大元素 I 一、739. 每日温度 class Solution {public int[] dailyTemperatures(int[] temperatures) {//单调栈int lenstemperatures.length;int result[]n…...

openMP学习笔记 -编程模型

OpenMP模型 gcc编译openmp指令&#xff1a;gcc test.cpp -o test -fopenmp 定积分计算 函数面积 给定一个定积分&#xff0c;计算其面积&#xff1a; ∫ 0 1 4.0 ( 1 x 2 ) d x \int^{1}_{0}{\frac{4.0}{(1x^2)}dx} ∫01​(1x2)4.0​dx omp 概念 并行区域 并行区域用于…...

【Hive SQL 每日一题】环比增长率、环比增长率、复合增长率

文章目录 环比增长率同比增长率复合增长率测试数据需求说明需求实现 环比增长率 环比增长率是指两个相邻时段之间某种指标的增长率。通常来说&#xff0c;环比增长率是比较两个连续时间段内某项数据的增长量大小的百分比。 环比增长率反映了两个相邻时间段内某种经济指标的变…...

Java设计模式之外观模式(Facade Pattern)

外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它提供了一个统一的接口&#xff0c;用于访问子系统中的一组接口。外观模式通过隐藏子系统的复杂性&#xff0c;简化了客户端与子系统之间的交互&#xff0c;提供了一个更简单、更直观的接口。…...

【大疆智图】大疆智图(DJI Terra 3.0.0)安装及使用教程

大疆智图是一款以二维正射影像与三维模型重建为主的软件,同时提供二维多光谱重建、激光雷达点云处理、精细化巡检等功能。它能够将无人机采集的数据可视化,实时生成高精度、高质量三维模型,满足事故现场、工程监测、电力巡线等场景的展示与精确测量需求。 文章目录 1. 安装D…...

腾讯地图基本使用(撒点位,点位点击,弹框等...功能) 搭配Vue3

腾讯地图的基础注册账号 展示地图等基础功能在专栏的上一篇内容 大家有兴趣可以去看一看 今天说的是腾讯地图的在稍微一点的基础操作 话不多说 直接上代码 var marker ref(null) var map var center ref(null) // 地图初始化 const initMap () > {//定义地图中心点坐标…...

散列表:Word文档中的单词拼写检查功能是如何实现的?

文章来源于极客时间前google工程师−王争专栏。 一旦我们在Word里输入一个错误的英文单词&#xff0c;它就会用标红的方式提示“编写错误”。Word的这个单词拼写检查功能&#xff0c;虽然很小但却非常实用。这个功能是如何实现的&#xff1f; 散列别&#xff08;Hash Table&am…...

智慧公厕蜕变多功能城市智慧驿站公厕的创新

随着城市发展的不断推进&#xff0c;对公共设施的便利性和智能化要求也日益提高。为满足市民对高品质、便捷、舒适的公共厕所的需求&#xff0c;智慧公厕行业的领航厂家广州中期科技有限公司&#xff0c;全新推出了一体化智慧公厕驿站。凭借着“高科技碳中和物联网创意设计新经…...

R语言清洗与处理数据常用代码段

去掉数据框df的某一列&#xff1a; # 删除不必要的变量 data$unnecessary_var <- NULL 选择需要的列进行读入数据框&#xff1a; # 选择需要的列 selected_cols <- c("col1", "col2", "col3") data <- fread("data.csv", s…...

centos 7.9 安装python 3.10的tls问题,

本地开发升级成了py3.10.6,服务器测试时安装py3.10.4 发现无法正常使用pip3 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 印象中py3的高版本依赖高版本的openssl,centos 7下默认的openssl为1.0.x, 问题很简…...

pytorch,tf维度理解RNN

input_t input_t.squeeze(1) 这行代码用于从 input_t 中去除尺寸为1的维度。在深度学习中&#xff0c;经常会出现具有额外尺寸为1的维度&#xff0c;这些维度通常是为了匹配模型的期望输入维度而添加的。 在这里&#xff0c;input_t可能具有形状 (batch_size, 1, feature_dim…...

算法刷题-数组

算法刷题 209. 长度最小的子数组-二分或者滑动窗口 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度**。**如果不存在符合条件的子数…...

可视化数学分析软件 MATLAB R2021b mac中文版软件介绍

MATLAB R2021b mac作为数学类科技应用软件中首屈一指的商业数学软件&#xff0c;可以帮助您进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。…...

罗技摄像头左右翻转

需要下载驱动lws&#xff08;我的是c310&#xff09; LWS 罗技摄像头驱动下载 打开驱动程序&#xff0c;高级设置。有个镜像。...

【Linux】操作系统的认识

操作系统 1. 冯诺依曼体系结构2. 操作系统 1. 冯诺依曼体系结构 冯诺依曼体系结构的介绍 冯.诺依曼结构消除了原始计算机体系中&#xff0c;只能依靠硬件控制程序的状况&#xff08;程序作为控制器的一部分&#xff0c;作为硬件存在&#xff09;&#xff0c;将程序编码存储在…...

Ostrakon-VL-8B嵌入式设备部署展望:轻量化与边缘计算

Ostrakon-VL-8B嵌入式设备部署展望&#xff1a;轻量化与边缘计算 最近和几个做嵌入式开发的朋友聊天&#xff0c;大家不约而同地提到了同一个问题&#xff1a;现在的大模型能力是强&#xff0c;但动辄几十上百亿的参数&#xff0c;怎么才能塞进资源有限的边缘设备里&#xff1…...

TDD-LTE系统时序精解:从TA、GP到覆盖与拉远的实战推演

1. TDD-LTE系统时序基础&#xff1a;从TA到GP的底层逻辑 第一次接触TDD-LTE的时序参数时&#xff0c;我被TA&#xff08;时间提前量&#xff09;和GP&#xff08;保护间隔&#xff09;这两个概念绕得头晕。直到在实地测试中遇到基站无法同步的问题&#xff0c;才真正理解它们的…...

Jmeter压测结果文件(.jtl)太大下载慢?试试这招在Linux服务器上直接生成HTML报告

Jmeter压测结果文件&#xff08;.jtl&#xff09;太大下载慢&#xff1f;试试这招在Linux服务器上直接生成HTML报告 每次性能测试结束后&#xff0c;面对几个GB的.jtl结果文件&#xff0c;你是否也经历过漫长的下载等待&#xff1f;特别是在跨国团队协作时&#xff0c;跨国传输…...

【SITS2026实战白皮书】:AI生成移动端代码的5大临界陷阱与3天落地避坑指南

第一章&#xff1a;SITS2026实战白皮书&#xff1a;AI生成移动端代码的5大临界陷阱与3天落地避坑指南 2026奇点智能技术大会(https://ml-summit.org) AI生成移动端代码正从概念验证快速迈向产线交付&#xff0c;但SITS2026现场实测显示&#xff1a;73%的团队在首次集成AI生成模…...

AGI能真正“原创”吗?:基于172项实验的创造性能力量化评估白皮书

第一章&#xff1a;AGI能真正“原创”吗&#xff1f;&#xff1a;基于172项实验的创造性能力量化评估白皮书 2026奇点智能技术大会(https://ml-summit.org) 本白皮书首次系统性地将“原创性”解构为可测量的认知维度——语义突变率、跨域映射熵、约束下解空间覆盖率与零样本范…...

StructBERT在智能招聘中的应用:候选人简历与JD关键词语义匹配效果展示

StructBERT在智能招聘中的应用&#xff1a;候选人简历与JD关键词语义匹配效果展示 1. 智能招聘的痛点与解决方案 招聘过程中最耗时的环节是什么&#xff1f;很多HR会告诉你&#xff1a;是简历筛选。面对海量简历&#xff0c;如何快速准确地找到与职位要求最匹配的候选人&…...

用于分类基于因果性和局部相关性的网络

Causal and Local Correlations Based Network for Multivariate Time Series Classification代码&#xff1a;https://github.com/dumingsen/CaLoNet面向多元时间序列分类&#xff08;MTSC&#xff09;的深度学习模型&#xff0c;核心创新是融合因果空间关联 局部时序关联&am…...

【限时开放】SITS2026内部生成模型微调手册泄露版:3类业务场景Prompt工程模板+12个生产环境Guardrail规则(仅剩87份)

第一章&#xff1a;SITS2026案例&#xff1a;AI云原生代码生成 2026奇点智能技术大会(https://ml-summit.org) 场景背景与架构演进 SITS2026项目是面向金融合规审计场景的AI增强型云原生平台&#xff0c;其核心能力在于实时将自然语言审计需求&#xff08;如“生成符合GDPR第…...

Spring Cloud 2027 边缘计算支持:构建分布式边缘应用

Spring Cloud 2027 边缘计算支持&#xff1a;构建分布式边缘应用 1. 边缘计算的概念 边缘计算是一种分布式计算范式&#xff0c;它将计算和数据存储移近数据源&#xff0c;减少延迟&#xff0c;提高响应速度&#xff0c;并减轻云端的负担。Spring Cloud 2027 正式集成了边缘计算…...

二手交易|基于springboot + vue二手交易管理系统(源码+数据库+文档)

二手交易管理系统 目录 基于springboot vue二手交易管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue二手交易管理系统 一、前言 博主介绍&am…...