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

最长递增子序列

本篇基于b站灵茶山艾府。

300. 最长递增子序列

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

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

示例 1:

输入:nums = [10,9,2,5,3,7,101,18]
输出:4
解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。

示例 2:

输入:nums = [0,1,0,3,2,3]
输出:4

示例 3:

输入:nums = [7,7,7,7,7,7,7]
输出:1

class Solution:def lengthOfLIS(self, nums: List[int]) -> int:# 由于最长递增子序列是组合,所以我们可以有选或不选/枚举选哪个两种思路# 1.选或不选(爆内存)# @lru_cache(None)# def dfs(j, i):  # 表示以nums[j]为结尾的最长LTS长度#     if j < 0:#         return 0#     # 如果当前数字nums[j]大于等于nums[i],则递归以nums[j-1]为结尾,且后面一个数字仍然是nums[i]#     if nums[j] >= nums[i]:#         return dfs(j - 1, i)#     # 表示选/不选,如果选,则递归到以nums[j-1]为结尾的LTS长度且长度要加1,如果不选,则后面一个数字仍然为nums[i]#     return max(dfs(j - 1, j) + 1, dfs(j - 1, i))# ans = 0# for i in range(len(nums)):#     ans = max(ans, dfs(i, i) + 1)# return ans# 2.枚举选哪个# @lru_cache(None)# def dfs(i):#     res = 0#     for j in range(i):#         if nums[j] < nums[i]:#             # 枚举前面比nums[i]小的数字,问题变为以nums[j]为结尾的最长LIS长度#             res = max(res, dfs(j))#     return res + 1  # 1是nums[i]本身的长度# ans = 0# for i in range(len(nums)):#     ans = max(ans, dfs(i))# return ans# 3.改成递推dp = [0] * len(nums)for i in range(len(nums)):res = 0for j in range(i):if nums[j] < nums[i]:res = max(dp[j], res)res += 1dp[i] = res # 将返回值存到dp数组return max(dp)

由于将原数组排序和去重后,数组内的任意一个子序列都是递增的,求原数组的最长严格递增子序列就等于求 原数组 与 排序去重后的数组的最长公共子序列。

相关文章:

  • C2S-Scale方法解读
  • 信奥赛-刷题笔记-栈篇-T2-P3056括号调整问题0518
  • LeetCode算 法 实 战 - - - 双 指 针 与 移 除 元 素、快 慢 指 针 与 删 除 有 序 数 组 中 的 重 复 项
  • LeetCode 394. 字符串解码详解:Java栈实现与逐行解析
  • 【甲方安全建设】Python 项目静态扫描工具 Bandit 安装使用详细教程
  • 【QGIS二次开发】空间分析-10
  • 力扣1991:找到数组的中间位置(前缀和)
  • SOC-ESP32S3部分:快速烧录上手使用
  • OpenCL C C++核心对象与属性对比
  • BiRefNet V3版 - 一个高精度的高分辨率图像抠图模型,AI“抠图之王” 支持50系显卡 本地一键整合包下载
  • 【第三十六周】LoRA 微调方法
  • AM32电调学习解读七:其他代码文件介绍
  • 001 嵌入式软件开发工程师实习篇面试——首战总结
  • ‘https://start.aliyun.com/‘ 的初始化失败 请检查 URL、网络和代理设置。
  • NHANES指标推荐:UHR
  • Vue.js教学第五章:计算属性与侦听器详解
  • Google Gen AI Python SDK 开发教程
  • 代码案例分析
  • 内容中台智能推荐系统构建与演进
  • 大学之大:墨西哥国立自治大学2025.5.18
  • 83岁山水花鸟画家、书法家吴静山离世,系岭南画派代表人物
  • 十年牢狱倒计时,一名服刑人员的期待与惶恐
  • 哪条线路客流最大?哪个站点早高峰人最多?上海地铁一季度客流报告出炉
  • 美国贸易政策|特朗普模式:你想做交易吗?
  • 一箭六星,朱雀二号改进型遥二运载火箭发射成功
  • 80后女博士黄双燕拟提名为内蒙古盟市政府(行署)副职人选