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

hot 100 300.最长递增子序列

最长递增子序列

  • ==问题描述==
  • ==样例输入==
  • ==样例输出==
  • ==评测用例规模与约定==
  • ==解析==
  • ==参考程序==
  • 难度等级

问题描述

给你一个整数数组nums,找到其中最长严格递增子序列的长度。

子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。


样例输入

nums=[10,9,2,5,3,7,101,18]

样例输出

4

评测用例规模与约定

  • 1 <= nums.length <= 2500
  • -10^4 <= nums[i] <= 10^4

解析

分析问题:
就正常人思维想的话还是暴力从每一个数开始往后遍历看递增的序列长度,但是这样做肯定不对了,因为序列不是有序的,可能大的在前面,长度是和后面小的连起来才最大。所以又是要枚举所有情况从i位置开始和从后面每一位开始的递增长度,这样时间会超时,时间复杂度太大了。
怎么做:
我们想想动态规划了,n*m 递推肯定不会超时,怎么办;
f[i]表示以i位置为结尾的最长递增子序列长度,那么面对前面小于的元素,就是从那个状态过来的所以是f[i]=max(f[i],f[j]);最后加1因为不知道从那个过来是最大的先选出最大的再加1;
还想优化空间的话可以用贪心+二分的思想看灵神的视频


参考程序

classSolution{public:intlengthOfLIS(vector<int>&nums){intn=nums.size();vector<int>f(n);for(inti=0;i<n;i++){f[i]=0;for(intj=0;j<i;j++){if(nums[j]<nums[i]){f[i]=max(f[i],f[j]);}}f[i]++;}returnranges::max(f);}};

难度等级

⭐️⭐️⭐️⭐️(1~10星)
以个人刷题整理为目的,如若侵权,请联系删除~

http://www.jsqmd.com/news/486295/

相关文章:

  • 六城高端腕表维修实操指南:36品牌故障应急+正规网点避坑(表主实测版) - 时光修表匠
  • 第三章:机器学习初醒:从数据中寻找规律
  • 算法设计与分析-习题4.3
  • 2026年青浦区高质量家电门店TOP榜:哪几家值得优先光顾?
  • 零基础Java Web初学者(三):Servlet的两种配置方法
  • 2026 最新|语言发育迟缓优质机构推荐,家长安心选 - 品牌测评鉴赏家
  • 2026少儿英语口语培训机构推荐:三大核心解锁自信沟通力 - 品牌2026
  • 哪个语音公司靠谱?如何选择安全稳定的语音通知平台? - Qqinqin
  • web三个组成部分
  • 2026致孤独症孩子家长:选对训练机构,是给“星星的孩子”最好的底气 - 品牌测评鉴赏家
  • 杭州湖州嘉兴绍兴到广东物流专线哪个公司好
  • System常用接口
  • P14346 [JOISC 2019] 指定城市 / Designated Cities - Link
  • 2026成都自闭症机构大揭秘:如何为孩子找到最佳康复之路 - 品牌测评鉴赏家
  • 深圳坪山青少年篮球培训哪里比较好?2026年机构对比整理 - 前沿公社
  • 科学启蒙,多维成长:2026六大主流少儿英语培训机构推荐 - 品牌2026
  • 孤独症机构怎么选?教育博主实测避坑,2026国标落地后家长必看指南 - 品牌测评鉴赏家
  • 哪家语音通知平台易接入?语音API接口对接指南对比 - Qqinqin
  • 小程序开发定制公司哪家好?2026十大口碑双优小程序开发公司精选 - 品牌种草官
  • 使用 Kettle (Pentaho Data Integration) 創建 MySQL 儲存過程完整教程
  • 西安发育迟缓康复机构怎么选?家长必看的科学筛选指南 - 品牌测评鉴赏家
  • 界面开发详解
  • 嵌入式定时器问题
  • 2026年度甄选:六大主流青少儿英语培训机构推荐 - 品牌2026
  • 警惕!孩子说话晚别乱选机构!3步避开90%的坑,附靠谱参考 - 品牌测评鉴赏家
  • springboot基于Java的旅游民宿网络营销系统
  • 语音通知接口哪家易对接?开发者语音平台选型建议 - Qqinqin
  • PP-DocLayoutV3版面区域检测模型部署
  • OpenCV 实战:从视频处理到图像轮廓检测的全维度解析
  • 语音验证码平台哪个好?国内主流语音服务平台推荐 - Qqinqin