231128 刷题日报

值班+刷题的第二天,早上地铁上看了一道题,以为很简单

LCR 019. 验证回文串 II

我的思路是引入计数器+左右指针,然而

Leetcode老哥提醒了我:

你看看这个字符串“lcuxxucul”,你的默认优先删除左边,但是删除左边是false,如果删除右边就是true

所以这题还是要dp实现的

另外整理下DP

0-1背包子集背包完全背包
如果限定每件物品最多只能选取 1次(即 0 或 1次),则问题称为 0-1背包问题如果每件物品最多可以选取无限次,则问题称为完全背包问题
dp数组定义对于前i个物品,当前背包容量是w,这种情况下可以装的最大价值是dp[i][w]dp[i][j] = x表示,对于前i个物品,当前背包容量是j时,若x为true,则说明背包可以恰好装满;若x为false,则说明不能恰好把背包装满。

dp[i][j]定义如下;

只使用前i物品,装满背包容量j,有dp[i][j]个方法

从前 i种硬币中组成金额 j所需最少的硬币数量。

状态转移

:dp[i - 1][w - wt[i-1]] + val[i-1]

不选:dp[i - 1][w]

推导式

dp[i][w] = max(dp[i - 1][w - wt[i-1]] + val[i-1], dp[i - 1][w]); 

dp[i][j] = dp[i - 1][j] || dp[i - 1][j-nums[i-1]]; 

dp[i][j] = dp[i - 1][j]

+ dp[i][j-coins[i-1]];

base case

dp[0][..] = 0

dp[..][0] = 0

没有物品或者没有背包空间时,最大价值是0

dp[0][..] = true

dp[..][0] = false

没有物品选择时,肯定没办法装满背包;

背包没有空间时,相当于背包满了。

dp[0][..] = 0

dp[..][0] = 1

如果不使用任何硬币面值,无法凑出金额;

如果目标金额为0,那么无为而治也是一种凑法。

应用

494. 目标和

416. 分割等和子集

474. 一和零

1049. 最后一块石头的重量 II

322. 零钱兑换

剑指 Offer II 103. 最少的硬币数目

518. 零钱兑换 II

279. 完全平方数

求最优解的背包问题中,有的题目要求恰好装满背包时的最优解,有的题目则要求不超过背包容量时的最优解。一种区别这两种问法的实现方法是在状态初始化的时候有所不同

两种问法的实现方法是在状态初始化的时候有所不同。
初始化的 dpdpdp 数组事实上就是在背包中没有放入任何物品时的合法状态:

如果要求恰好装满背包,那么在初始化时 dp[i][0]=0,其它 dp[i][1,2,...,∗] 均设为 −∞。

这是因为此时只有容量为 0的背包可能被价值为 0 的 nothing “恰好装满”,而其它容量的背包均没有合法的解,属于未定义的状态。


如果只是要求不超过背包容量而使得背包中的物品价值尽量大,初始化时应将 dp[∗][∗]全部设为 0。

这是因为对应于任何一个背包,都有一个合法解为 “什么都不装”,价值为 000。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SystemVerilog 入门

文章目录 包定义SystemVerilog 数据类型结构体 SystemVerilog 过程块可嵌套模块接口 System Verilog 的优点 提高了硬件建模能力、编码效率和抽象能力;RTL 级、系统级行为描述; 增强了验证能力和为大规模复杂设计编写有效、无竞争测试程序的断言功能&am…

ESP32-Web-Server 实战编程-使用文件系统建立强大的 web 系统

ESP32-Web-Server 实战编程-使用文件系统建立强大的 web 系统 概述 在前述章节我们讲述了在网页端控制多个 GPIO 的案例。当程序开始变得复杂,让一些功能“自动起来”是一个好的选择。 在前面的示例中,我们需要在后端为每个前端代码的 URL 指定一个对…

类和对象——(2)类

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 只虽然夜晚很长,但天…

选择排序以及改进方案

选择排序以及改进方案 介绍: 选择排序是一种简单直观的排序算法,它的基本思想是在未排序序列中选择最小(或最大)的元素,然后将其放在已排序序列的末尾。选择排序的过程就像是每次从待排序的元素中选择最小的一个&…

C51--4G模块

EC03-DNC:4G通信模块 EC03-DNC 功能特点: 采用最新4G CAT1方案; 支持数据透明传输; 支持TCP、UDP 网络协议; 支持心跳包、注册包功能最大支持64个字节数; 支持MQTT协议,支持接入OneNet平台、百度云平台、阿里云平台的…

计网Lesson4 - 计算机组网模型

文章目录 计算机的连接方式1. 两台计算机的互联2. 多台计算机的互联(旧式)3. 多台计算机的互联 --- 集线器(Hub)4. 网桥5. 多台计算机的互联 --- 交换器(Switch) 计算机的连接方式 1. 两台计算机的互联 网…

ELK日志收集系统-filbeat

filebeat日志收集工具 elk:filebeat日志收集工具和logstash相同 filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小的多 filebeat可以运行在非Java环境,它可以代理logstash在非java环境上收集日志…

Boot工程快速启动【Linux】

Boot工程快速启动【Linux】 在idea中打包cd usr/在local文件夹下mkdir app进入app文件夹把打包好的文件(只上传其中的jar)上传到app文件下检查linux中的Java版本,保证和项目的Java 版本保持一致运行 java -jar sp补全***.jar想看效果得查询当…

大模型的开源闭源

文章目录 开源&闭源开源和闭源的优劣势比较开源和闭源对大模型技术发展的影响开源与闭源的商业模式比较国内的大模型开源和闭源的现状和趋势 开源和闭源,两种截然不同的开发模式,对于大模型的发展有着重要影响。 开源让技术共享,吸引了众…

爬虫如何确定HTTP代理IP是否符合自己业务需求?

HTTP代理在许多业务场景中发挥着关键作用,但要确保其能够满足业务需求,需要考虑多个方面的因素。今天我们一起看看,要如何判断HTTP代理是否适合自己的业务,以及在选择HTTP代理时需要考虑的综合因素。 1. 稳定性 稳定性是HTTP代理…

LangChain 14 SequencialChain链接不同的组件

LangChain系列文章 LangChain 实现给动物取名字,LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索I…

计网Lesson3 - 计算机网络评价指标与封包解包

文章目录 计算机网络的性能指标1. 速率2. 带宽3. 吞吐量4. 时延5. 时延带宽积6. 往返时间7. 利用率8. 数据的解包和封包 计算机网络的术语实体![实体](https://img-blog.csdnimg.cn/direct/cbf4ca9ed5ab4df290b5a17b4642c6a1.png)协议服务 计算机网络的性能指标 1. 速率 数据…

MOSFET安全工作区域SOA

Safe Operating Area(SOA)即安全工作区:描述了当MOSFET工作在饱和区时可以处理的最大功率。超出安全工作区,则可能导致元件损坏。 SOA分为五个单独的界限,分别是RDS(on)限制 On Resistance(RDS(on)&#…

算法通关第十三关-青铜挑战数学基础问题

数组元素积的符号 描述 : 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 。如果 x 是负数,返回 -1 。如果 x 是等于 0 ,返回 0 。 给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的…

大语言模型概述(二):基于亚马逊云科技的研究分析与实践

上期介绍了大语言模型的定义和发展历史,本期将分析基于亚马逊云科技的大语言模型相关研究方向,以及大语言模型的训练和构建优化。 大语言模型研究方向分析 Amazon Titan 2023 年 4 月,亚马逊云科技宣布推出 Amazon Titan 大语言模型。根据…

【SpringCloud系列】@FeignClient微服务轻舞者

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Vue3+java开发组队功能

Vue3java开发系统组队功能 需求分析 创建用户可以创建一个队伍(一个房间队长),设置队伍人数,队伍名称(标题),描述,超时时间。搜索加入,用户可以加入未满的队伍&#xf…

iconfont 使用彩色图标

1、下载iconfont到本地 2、全局安装 iconfont-tools npm install -g iconfont-tools 3、在iconfont解压目录下执行命令、一直回车 iconfont-tools 4、文件拷贝 执行完上述命令后会生成iconfont-weapp目录,将iconfont-weapp目录下的iconfont-weapp- icon.css文件…

ELK日志系统

(一)ELK 1、elk:是一套完整的日志集中处理方案,由三个开源的软件简称组成 2、E:ElasticSearch(ES),是一个开源的,分布式的存储检索引擎(索引型的非关系型数…

【开源】基于JAVA的城市桥梁道路管理系统

项目编号: S 025 ,文末获取源码。 \color{red}{项目编号:S025,文末获取源码。} 项目编号:S025,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥…
最新文章