首页 > 其他分享 >LeetCode354 -- 最长上升子序列

LeetCode354 -- 最长上升子序列

时间:2023-03-19 20:12:24浏览次数:59  
标签:11 10 12 -- LeetCode354 len 升序 端点 序列

1. 题目描述

354. 俄罗斯套娃信封问题



2. 思路

非常明显的上升子序列问题。但是我在做的时候遇到了一个之前做 \(LCS\) 从来没考虑过的点。
之前都是直接排序,而无论是左端点优先还是右端点优先,假设左端点优先吧并且一般都是升序,我们一般是让右端点也升序的。
也就是说,左右端点都是升序的。做了很多 \(LCS\),都没有问题,直到这里,由于一些机缘巧合,\(bug\) 来了!

看看下面的例子:\([1,10], [2,4], [3,5]\)
我在做的时候,因为数据规模在 \(10^{5}\), 所以使用了贪心的做法,按照左端点升序,然后右端点升序。
然后二分查找合适的长度并更新答案。
然后对于每个长度,保存一个 \([left,right]\),即 q[len] = {left, right},表示长度为 \(k\) 时,左右端点的最小值。(注意⚠️,这句话问题很大!)
对于该例子,我们希望输出长度 \(2\),即,\([2,4], [3,5]\) 显然是符合条件的。
但是我的程序输出了 \(1\),为什么呢?
原来是,长度为 \(1\) 时,我们选择了 \([1, 10]\),而遍历到 \([2,4]\) 时,\(4 < 10\),因此跳过去了,\([3,5]\) 也是。
注意到问题所在了没有?对于 \([1,10]\) 和 \([2,4]\),谁“更小”?
答案是不知道或者说是不确定

标签:11,10,12,--,LeetCode354,len,升序,端点,序列
From: https://www.cnblogs.com/ALaterStart/p/17234064.html

相关文章

  • nacos原理(二)更新Spring容器对象
    Spring容器感知分为两部分。第一部分是更新Environment、第二部分是注册到Spring容器的对象感知。1.更新Environment上文知道对于配置发生改变会调用发送newRefres......
  • 集合(可恶啊,学的好慢,去青岛玩了5天)
    集合集合概念对象的容器,实现了对对象常用的操作,类似于数组的功能集合和数组的区别:数组长度固定,集合长度不固定数组可以存储基本类型和引用类型,集合只能引用类型Colle......
  • 常用JVM参数
    -XX:+PrintCommandLineFlags打印那些已经被用户或者JVM设置过的详细的xx参数的名称和值。-XX:+PrintFlagsInitial打印所有JVM参数启动的初始值-XX:+PrintFlagsFinal打......
  • cisco rv34x漏洞复现(利用失败)(求助帖)
    前言:某公司技术面时提示我在漏洞利用方向上经验不足,并且需要提交一份无poc的漏洞报告,才有了今天的这篇文章记录在翻找漏洞的时候看到这个漏洞d   看到是缓冲区溢......
  • 全链路压测(4):全链路压测的价值是什么?
    转载:https://www.cnblogs.com/imyalost/p/15777351.html在前面的几篇文章中,介绍了全链路压测的背景、在企业中的立项流程以及落地的一些技术方案。在开始真正的介绍落地......
  • 06-逻辑仿真工具VCS-Debug
    逻辑仿真工具VCSverdi只进行debug进行使用,不进行编译,只进行产生波形之后的debug仿真速度和代码质量有关系,选项也会影响仿真速度,行为级>RTL>门级信号的可见性和......
  • BBS系统
    前期准备配置在setting.py中配置"""数据库配置""" DATABASES={ 'default':{ 'ENGINE':'django.db.backends.mysql', 'NAME':'bbs', #数据库名称 'USE......
  • conda环境下使用nvcc -V报错nvcc: command not found的一种解决方法
    前言缘起 实验室的学弟问我为什么他使用nvcc命令报错,起先我以为他用的是老师给的root账户,按照参考文献1便可以解决问题。 但由于并非root用户,/usr/local下没有cuda,于......
  • 谷歌游览器打包插件迁移新电脑
    前言由于换新电脑不想把盘所有文件全部移动因为有很多确实没什么用的文件当梳理一下自己有用的吧。大部分的都还好说吧,QQ、Wechat聊天记录都直接移动就行。部分软件直......
  • c++11新特性总结
    C++11新增加特性1.=default,delete=default如果我们没有定义构造函数,C++编译器会自动为我们创建一个默认构造函数。但是如果我们定义了一个构造函数,那么编译器就不会为......