递增子序列笔记

news/2025/9/29 20:02:33/文章来源:https://www.cnblogs.com/jhygk/p/19112006

错题
leetcode 354. 俄罗斯套娃信封问题
错因和思路:1.心态:因为是自己原来做过的题目就掉以轻心了,导致情况没有考虑周全
2.思路:将宽度进行排序,高度没管,如果相同就不改变二分后找到的修改位置,显然这会少答案要的长度
思路引导:这里根据题目描述很容易想到递增子序列并将其排序,但是当将宽度进行排序后,会发现高度的选取很麻烦,如果是找递增子序列还是要管宽度问题,比如说 [[30,50],[12,2],[3,4],[12,15]]
既然如此,那就得换种思路,宽度排序是必须的,怎么才可以在讨论高度的时候不讨论宽度问题呢?从高处下手,既然不要选同样的,我们又是要找递增自序列,大胆想象一下,我们可以在宽度相同的情况下,将高度呈不上升子序列,如此便

洛谷P8776 [蓝桥杯 2022 省 A] 最长不下降子序列
错因和思路:这里太兴奋了哈哈没想太多直接找出最长不下降子序列,然后找了个最长的递增子数组,和k取一个min
思路引导: 首先应该会想到找直接找出最长不下降子序列,然后在里面每个子序列间考虑,不仅要记录是不是最长子序列里面的,还要考虑会不会跨,而且一般来讲我们都不记录最长子序列到底有哪些数,只记录答案,所以很麻烦,因此暂时PASS
当问题看似棘手时,就要跳出当前思路,退一步海阔天空
从上面PASS的方案可以看出,其实整个数组的任意连续的k个数都有可能刷成某个数后使得整个数组的最长不下降子序列变长,因此,我们可以枚举k的位置,像固定的滑窗一样[l,r)(根据个x人习惯),这样的话我们只需考虑边界0——l-1
的最长不降子序列(最后一个值不大于nums[r]),以及r——n-1的最长不降子序列即可
其实,从上面的方案,还可以从另一个角度发现这个思路.就是既然我们可能要跨界限,就不好在算上最长不降子序列的长度后又去处理刷出来的有效的长度,既然如此,秉持着考虑可能性的原则,我们就直接在我们要的答案中的两个界限
找k个数,什么意思?这里分两种情况假设(注:这里是找到的最终答案,所以不存在跨界情况)
我们要……A…… B…… C…… [k个被刷的数]…… D…… E……
……A…… B…… C…… [k个被刷的数] D…… E……
obviously,上面的情况和下面的情况的答案实际上是等效的,所以我们直接枚举k个数在哪,然后找左边界的最长不降子序列和右边界开始的最长不降子序列即可
大体流程明白,现在就是怎么找不降子序列的问题。
1)从0_i的 这里最原始的方法就是dp[i]=dp[j]+1 其中是从0-i-1中找到nums[j]<=nums[i],复杂度比较高,那我们换种思路,就是加一个辅助数组end,表示长度为x的最长不下降子序列的最小的结尾的数是啥,每碰到一个数,就用二
分在里面找一个>这个数 的数的位置,如果没有就说明没有在目前最长的不下降子序列中这个数是最大的数,那么在end的有效长度的后面记录这个数值,并将有效长度扩大。如果找到了,覆盖即可,并在dp[i]=x
2)从i_n-1的 这个用倒序的最长不下降子序列即可

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

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

相关文章

MonoDETR(2)

实验结果如下:

记录---window.close()失效 + Chrome浏览器调试线上代码

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣 情况说明主系统单点登录点击触发window.open()打开本系统。 是发布生产后的新需求:要求退出登录后直接关闭当前系统页面。 本地运行增加了window.close()方法实…

启发式合并 [USACO22DEC] Making Friends P

题意 \(N\) 牛 \(M\) 关系,按照编号从小到大,牛依次离开,每一头牛离开时它认识的牛会互相认识,求最后新增了多少朋友关系。 \(N,M\le 2\times 10^5\) 解法 我们将操作看成每个点边集合的合并,尝试使用启发式合并解…

ps企业站网站做多大网站建设功能覆盖范围

Truth Truth 是用于Java测试的断言框架&#xff0c;灵感来自于FEST&#xff0c;并受到一些可扩展性需求的驱动&#xff0c;几乎完全由谷歌员工在业余时间编写&#xff0c;或者作为Java核心图书馆管理员的身份做出贡献。 作用 作为工程师&#xff0c;我们花费大部分的时间来阅…

动易的网站能否静态提供o2o网站建设

#文件防泄密软件# 中科数安是一家专注于信息安全领域的高科技企业&#xff0c;其提供的防止公司内部文件资料及数据外泄的解决方案主要包括图档透明加密和源代码防泄露系统等核心服务。 中科数安 | 图档、源代码防止外泄系统 PC地址&#xff1a; www.weaem.com 1. 图档透明加…

加密的病例单

点击查看代码 #include<iostream> #include<cstring> using namespace std; char s[55]; char d[55]; int main() {gets_s(s);int len = strlen(s);s[len] = \0;d[len] = \0;for (int i = 0; i < len; …

【多线程】什么是原子操作(Atomic Operation)? - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

详细介绍:视频融合平台EasyCVR构筑智慧交通可视化管理与智能决策中枢

详细介绍:视频融合平台EasyCVR构筑智慧交通可视化管理与智能决策中枢pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &q…

php高性能网站建设深圳微信网站开发公司

今日分享阿里云一面&#xff0c;给要准备就业的宝子们一点方向 1、自我介绍与项目介绍 2、八股文 Java的特性、Java的oop&#xff1f; Java有哪些方法来实现线程安全&#xff1f; 讲讲Spring中的AOP与IOC&#xff1f; synchronized锁怎么用&#xff1f; Mysql中右模糊查询用…

docker 在x86上build arm 镜像

好——你想在 x86 主机上构建 ARM 镜像(比如为 Raspberry Pi 或者 ARM 服务器构建 linux/arm64 / linux/arm/v7)。下面给出一套实用、可直接复制执行的步骤、常用命令、以及常见问题与优化建议,覆盖从环境准备到构建…

网站开发用什么系统比较好?网站建设维护合同模板

前言 大家好&#xff0c;我是来自CSDN的寄术区博主PleaSure乐事。今天是开始学习vue的第一天&#xff0c;我使用的编译器是vscode&#xff0c;浏览器使用的是谷歌浏览器&#xff0c;后续会下载webstorm进行使用&#xff0c;当前学习阶段使用vscode也是可以的&#xff0c;不用担…

9.29软工

今天学了很多,就得靠练。

手机怎么做黑网站网络公司网络推广

AES加密是美国联邦政府采用的一种块加密标准&#xff0c;如今已经被全世界广为使用。嵌入式开发中我们也经常会用到加密解密算法&#xff0c;如果没有硬件模块来实现&#xff0c;就需要用到C代码软件实现。下面介绍调用mbedTLS中的AES加密解密函数实现AES算法。 mbedTLS是一个…

不一样的.NET烟火,基于Roslyn的开源代码生成器

功能介绍 Mud 代码生成器是一个基于Roslyn的源代码生成器,专为.NET开发者设计,用于根据实体类自动生成各种相关的代码,从而显著提升开发效率。它具有以下核心功能:DTO代码生成 - 根据实体类自动生成数据传输对象(…

详细介绍:深入浅出 XSS — 从原理到实战与防护

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

房屋在线设计网站个人网站怎么做打赏

我叫白天涯&#xff0c;来自计科13-1班。 首次使用这个博客园发表随笔&#xff0c;请大家多多关照。 本次软件工程课我希望能好好听讲&#xff0c;认真做课堂记录&#xff0c;不会的及时问老师&#xff0c;以及跟同学沟通&#xff0c;尽管我计算机这方面不是太精通&#xff0c;…

vxe-table 数据量过大时切换空白

vxe-table 数据量过大时切换空白问题 vxe-table单页数据超过100条时,切换页签会导致表格区域出现空白。此时滚动鼠标,数据会重新出现。 解决 给 vxe-table 标签上添加 :scroll-y="{ gt: -1 }"即可禁用虚拟…

复刻江协旋钮控制模块

复刻江协旋钮控制模块 1、初始化硬件 OLED初始化这里就不展开细讲了,可以看我之前的帖子复刻江协激光触发器旋钮初始化使能外部中断模式改为上拉根据旋钮接口接上线2、操作代码 (1) 初始化输出定义全局变量count,并初…

做自行车车队网站的名字展厅搭建公司

一、引入 在没有遇见mapstruct的时候&#xff0c;实现各个实体之间的转换&#xff0c;都是手动转换实现的&#xff0c;属性少一带你还好&#xff0c;当属性一多&#xff0c;代码就会变得很冗余&#xff0c;没必要的非逻辑的代码就会加多。。。。 比如&#xff1a; public cl…

Linux 基础IO与系统IO - 实践

Linux 基础IO与系统IO - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…