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

贪心算法-递增的三页子序列

题目链接

一、问题描述

给定一个整数数组nums,判断是否存在长度为3的递增子序列,即是否存在下标i < j < k,使得nums[i] < nums[j] < nums[k]

  • 存在则返回true,否则返回false

二、核心解法

解法1:动态规划(DP)
  • 思路:计算数组的**最长递增子序列(LIS)**的长度,若长度 ≥ 3,则说明存在符合要求的子序列。
  • 实现逻辑
    1. 定义dp[i]表示以nums[i]结尾的最长递增子序列的长度。
    2. 对每个i,遍历所有j < i,若nums[j] < nums[i],则dp[i] = max(dp[i], dp[j] + 1)
    3. 遍历dp数组,若存在值 ≥ 3,直接返回true
  • 复杂度:时间复杂度O(n²),空间复杂度O(n)(需存储dp数组)。
解法2:贪心算法
  • 思路:用两个变量ab分别记录长度为1长度为2的递增子序列的最小末尾值,遍历数组时更新这两个变量,一旦找到比b大的元素,说明存在长度为3的递增子序列。
  • 实现逻辑(以示例[2,1,5,0,4,6]为例):
    1. 初始化a = ∞b = ∞
    2. 遍历每个元素x
      • x ≤ a→ 更新a = x(保持长度1的子序列末尾最小);
      • a < x ≤ b→ 更新b = x(保持长度2的子序列末尾最小);
      • x > b→ 说明存在a < b < x,即长度为3的递增子序列,直接返回true
    3. 遍历结束未找到则返回false
  • 复杂度:时间复杂度O(n)(仅需一次遍历),空间复杂度O(1)(仅用两个变量),是更优的解法。

三、知识点总结

  1. 问题本质:该问题是「最长递增子序列(LIS)」的特例,只需判断 LIS 长度是否 ≥ 3。
  2. 算法对比
    • 动态规划适用于需要完整计算 LIS 长度的场景,但时间复杂度较高;
    • 贪心解法针对「判断是否存在长度为3的递增子序列」做了优化,时间、空间效率更优。
  3. 贪心策略的核心:维护最小的可能末尾值,让后续更容易找到更长的递增子序列,从而提升效率。
http://www.jsqmd.com/news/339970/

相关文章:

  • 【微实验】Zhang-Suen 快速并行细化算法与MATLAB实现
  • ESP32-S3入门教程:配置芯片
  • 转行网络安全,学历到底重不重要?
  • 龙魂模型这模型会说谎吗?
  • ESP32-S3入门教程:#include无法找到的解决方案
  • 2025年程序员都转行,我该何去何从呢!
  • 2026年比较好的印刷/彩盒印刷优质厂家推荐汇总 - 行业平台推荐
  • 机器学习入门(二十)支持向量机SVM
  • 2026年河南复合肥优质厂家盘点与采购参考 - 2026年企业推荐榜
  • 2026年口碑好的白酒包装人气实力厂商推荐 - 行业平台推荐
  • 基于动态规划算法的混合动力汽车能量管理建模与计算
  • 深圳跨境电商中的“亚马逊精品模式“详解
  • Phlux Technology 荣获 SPIE 棱镜奖
  • 原子层加工技术推动碳化硅量子光子电路发展
  • 英国团队展示砷化镓量子点发光波长的可调谐对准
  • 2026年靠谱的氟橡胶密封圈厂家口碑排行 - 行业平台推荐
  • 2026年比较好的非标O型圈厂家选购参考汇总 - 行业平台推荐
  • 2026年2月杭州青少年男款内衣实力工厂深度盘点 - 2026年企业推荐榜
  • 2026年防水涂料品牌可靠性深度评估与厂商精选 - 2026年企业推荐榜
  • 2026年评价高的硅胶密封圈/丁腈橡胶密封圈厂家真实测评 - 行业平台推荐
  • ESP32-S2-MINI-2:高性能、高集成度的物联网Wi-Fi模组解析
  • 2026年花生选种指南:头部服务商综合评测与推荐 - 2026年企业推荐榜
  • 现代数据架构的AI驱动转型:AI应用架构师的角色与挑战
  • 家长必看:小学英语服务商挑选标准 - 2026年企业推荐榜
  • 2026年杭州内裤生产厂商技术实力与创新应用评析 - 2026年企业推荐榜
  • 小公司的研发后期,基本等同于售后服务部
  • SAP ABAP代码实现常规数据批导(剪切板方式)
  • SolarWinds 修复四个严重漏洞,可导致未认证RCE和认证绕过
  • 2026年三亚海鲜与湘菜推荐榜单,畅享八大美味
  • 2024年Agentic AI行业应用趋势:提示工程架构师的机会在哪里?