leetcode hot100 300. 最长递增子序列 medium 动态规划


时间复杂度:O(n²)

空间复杂度:O(n)

dpi 表示 以 numsi 结尾的最长递增子序列长度

python 复制代码
class Solution:
    def lengthOfLIS(self, nums: List[int]) -> int:

        # 动态规划:时间复杂度:O(n²), 空间复杂度:O(n)

        # dp[i] 表示 以 nums[i] 结尾的最长递增子序列长度
        # 对于每个 i,遍历 j = 0..i-1:
        #     如果 nums[i] > nums[j] → 可以接在 nums[j] 后面
        #     更新 dp[i] = max(dp[i], dp[j]+1)

        n = len(nums)
        dp = [1] * n  # nums中每个位置的最长子序列长度,初始值为1: dp = [1,1,1,...]

        for i in range(n):
            # 遍历i前面的数字,更新i是否可以作为对应数字,对应最长子序列的下一个,可以:i位置的最长子数组长度+1
            for j in range(i):
                if nums[i] > nums[j]:
                    dp[i] = max(dp[i], dp[j]+1)

        return max(dp)
相关推荐
退休倒计时1 小时前
【每日一题】LeetCode 53. 最大子数组和 TypeScript
数据结构·算法·leetcode·typescript
2601_961875242 小时前
法考资料2026|全套|资料已整理
数据结构·算法·链表·贪心算法·eclipse·线性回归·动态规划
汉克老师3 小时前
GESP2026年3月认证C++六级真题与解析(编程题1 选数)
c++·动态规划·线性dp·gesp六级·状态转移·选与不选
洛水水4 小时前
【力扣100题】86.柱状图中最大的矩形
算法·leetcode·职场和发展
渡之4 小时前
GRiM-Net 深度解析 | 无人机 GNSS 拒止场景下两阶段跨视角视觉定位框架
深度学习·算法·动态规划·无人机
洛水水5 小时前
【力扣100题】81.寻找两个正序数组的中位数
数据结构·算法·leetcode
洛水水6 小时前
【力扣100题】85.每日温度
算法·leetcode·职场和发展
Kurisu_红莉栖6 小时前
力扣56合并区间
算法·leetcode
xhtdj6 小时前
Uber 如何通过批处理实现单账户每秒30+次更新
大数据·数据库·人工智能·安全·动态规划
开源Z7 小时前
LeetCode 135 · 分发糖果:两次扫描,先左后右取最大
算法·leetcode