01背包与完全背包学习总结

背包问题分类见下图

参考学习点击:代码随想录01背包讲解

01背包问题:

核心思路:

1、先遍历物品个数,再遍历背包容量。因为容量最先是最大的,往背包里放物品,所以背包容量在慢慢减少,但背包容量需要大于每一个物品体积

2、每个物品有2个选择:选中和不选中。

3、选中的结果是背包剩余容量的最大价值+选中物品的价值;

4、不选中的结果是背包剩余容量还是不变,最大价值还是背包剩余容量的最大价值

 public static void main(String[] args) {int[] weight = {1, 3, 4};  //每个物品体积int[] value = {15, 20, 30}; // 每个物品价值int bagWight = 4;            // 背包容量testWeightBagProblem(weight, value, bagWight);}public static void testWeightBagProblem(int[] weight, int[] value, int bagWeight){//定义dp数组:dp[j]表示背包容量为j时,能获得的最大价值int[] dp = new int[bagWeight + 1];//背包容量来定义dp数组for (int i = 0; i < weight.length; i++){ //先遍历物品for (int j = bagWeight; j >= weight[i]; j--){ //再遍历背包,背包容量是从最大一直慢慢减少          //每个物品有2种选择,选中与不选中:选中的话,背包价值=背包容量剩余物品的价值在加上选中物品的价值//不选中的话,背包价值=背包容量j的价值dp[j] = Math.max(dp[j], dp[j - weight[i]] + value[i]);}}//打印dp数组for (int j = 0; j <= bagWeight; j++){System.out.print(dp[j] + " ");}}

完全背包问题:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/160838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS7 firewall使用(开放和禁止端口、端口转发)

安装 安装命令 yum install firewalld -y 使用命令 systemctl start firewalld ##开启防火墙systemctl stop firewalld ##关闭防火墙systemctl status firewalld ##查看防火墙状态firewall-cmd --reload ##重启防火墙systemctl enable firewalld ##设置开启启动systemctl …

共享内存原理介绍及简单使用

每当我们执行一个程序时&#xff0c;对于操作系统来讲就创建了一个进程,在这个过程中&#xff0c;伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。进程的内存空间是相互独立的&#xff0c;一般而言是不能相互访问的。但很多情况下进程间需要互相通信&#xff…

上海泗博MODBUS转PROFINET网关TS-180 网关连接LED显示屏应用案例

项目 常州某钢铁公司的轧钢车间为了更清晰地显示当天轧钢系统各环节的工作参数&#xff0c;如轧钢的日期、钢种、吐丝机设备运行情况等&#xff0c;引进了另一家为其定制的LED显示屏。轧钢系统各环节的设备参数通过西门子S7-1500PLC采集后&#xff0c;实时显示在LED显示屏上&am…

飞瓜数据B站丨B站UP主11月第3周榜单排行榜榜单(B站平台)发布!

飞瓜轻数发布2023年11月13日-11月19日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数、带货数据等维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营…

Linux网络——传输层

目录 一.再谈端口概念 二.UDP协议 1.UDP协议格式 2.UDP的特点 3.面向数据报 4.UDP的缓冲区 5.UDP使用注意事项 6.UDP协议在内核中的表现形式 7.基于UDP的应用层协议 三.TCP协议 1.TCP协议格式 2.TCP确认应答机制 3.超时重传机制 4.TCP报文六位标志位 5.滑动窗口 6…

制作抖音查券返利机器人的简易步骤

制作抖音查券返利机器人的简易步骤 随着社交电商的快速发展&#xff0c;越来越多的消费者开始通过优惠券和返利来省钱购物。而抖音作为一款广受欢迎的短视频平台&#xff0c;也为消费者提供了一个全新的购物体验。本文将结合微赚淘客系统&#xff0c;介绍如何制作一个简易的抖…

Web3与Web3.0: Web3指的是去中心化和基于区块链的网络,Web3.0指的是链接或语义网络。

目录 Web3与Web3.0: Web3指的是去中心化和基于区块链的网络 Web3.0指的是链接或语义网络。

Flutter开发实践:用一套代码构建多端精美应用

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

Python下使用requests库遇到的问题及解决方案

每一盏灯都有一个故事……当凌晨2点我的房间灯还亮着时&#xff0c;那就是我与BUG的一场生死博弈。一个人静静地坐在电脑前不断地写代码&#xff0c;感觉快要麻木了&#xff0c;好比闭关修炼一样枯燥无味。最终当我打通任督二脉后&#xff0c;bug修复迎来的一片曙光。 一、问题…

clang+llvm多进程gdb调试

clangllvm多进程gdb调试 前言1. 命令行gdb2. 父进程调试3. 子进程调试4. 返回父进程 前言 在学习新增llvm的优化pass时&#xff0c;需要跟踪clang及llvm的调用栈。然而llvm通过posix_spawn()创建了新进程&#xff0c;这使得gdb调试必须有一定的技巧了。 1. 命令行gdb 以下命…

函数式编程-Stream流笔记-三更草堂

函数式编程-Stream流 1. 概述 1.1 为什么学&#xff1f; 能够看懂公司里的代码 大数量下处理集合效率高 代码可读性高 消灭嵌套地狱 //查询未成年作家的评分在70以上的书籍 由于数据中作家和书籍可能出现重复&#xff0c;需要进行去重 List<Book> bookList new Ar…

4G5G智能执法记录仪在保险公司车辆保险远程定损中的应用

4G智能执法记录仪&#xff1a;汽车保险定损的**利器 随着科技的不断进步&#xff0c;越来越多的智能设备应用到日常生活中。而在车辆保险定损领域&#xff0c;4G智能执法记录仪的出现无疑是一大**。它不仅可以实现远程定损&#xff0c;还能实现可视化操作、打印保单以及数据融…

WCF Demo

1.WCF概述 WCF是用于构建分布式应用程序和服务的框架。它提供了用于创建和管理分布式系统的工具和库&#xff0c;支持多种通信协议和传输方式&#xff0c;如HTTP、TCP、Named Pipes等。WCF基于服务的概念&#xff0c;允许开发人员定义服务契约、实现服务逻辑&#xff0c;并通过…

给定一个非严格递增排列的有序数组,删除数组中的重复项

实例要求&#xff1a;1、给定一个非严格递增排列的有序数组 nums &#xff1b;2、原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff1b;3、返回删除后数组的新长度&#xff1b;4、元素的 相对顺序 应该保持 一致 &#xff1b;5、然后返回 nums 中唯一元素的…

dolphinscheduler有任务一直在运行(问题)目前对数据库解决

dolphinscheduler有任务一直在运行&#xff08;问题&#xff09;目前对数据库解决 危害&#xff1a; 这么多的任务没有结束&#xff0c;会涉及很多问题的&#xff0c;系统的数据盘会不断入职日志&#xff0c;数据量很大&#xff0c; 其实对于dolphinscheduler的性能是下降的&a…

WMware虚拟机与主机互相共享文件安装VMware Tools灰色无法点击安装解决方案

一、背景 虚拟机与主机互传文件最简单的方法&#xff0c;就是给虚拟机系统安装VMware Tools。 安装VMware Tools后虚拟机系统和主机的文件可以相互拖拽&#xff0c;文字也可以任意粘贴复制。 二、遇到的问题 使用VMware时&#xff0c;安装VMware Tools或者重新安装VMware To…

假期对企业邮箱的维护和管理策略

假期应该对企业邮箱做些什么&#xff1f;放假后对企业邮箱的自动回复设置将在这里单独列出。自动回复是你与新老客户沟通的桥梁。告诉老客户你放假了&#xff0c;但你会花时间回复他。还告诉新客户&#xff08;新询价客户&#xff09;你在假期不能及时回复他&#xff0c;他们会…

m4s格式视频文件如何转mp4?三个方法教会你!

m4s格式是一种视频分片格式&#xff0c;它将视频文件分成多个小块&#xff0c;方便网络传输和播放。这种格式常用于流媒体服务&#xff0c;如在线视频网站、直播平台等&#xff0c;比如B站哔哩哔哩下载下来的视频就是这种格式。 方法一&#xff1a;野葱视频转换器 一款音视频转…

锯木棍

题目描述 有一根粗细均匀长度为 L 的木棍&#xff0c;先用红颜色刻度线将它 m 等分&#xff0c;再用蓝色刻度线将 其 n 等分&#xff08; m>n &#xff09;&#xff0c;然后按所有刻度线将该木棍锯成小段&#xff0c;计算并输出长度最长的木棍的长度和根数。 输入格式…

【Python】数据类型和切片的零碎知识点

1. 数据类型 pow(a, b, c) # a^b % c print("happy {}".format(name))数字类型包括整数&#xff0c;浮点数&#xff0c;复数 0x9a表示十六进制数&#xff08;0x&#xff0c;0X开头表示十六进制&#xff09; 0b1010&#xff0c;-0B101表示二进制数&#xff08;0…