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


时间复杂度:O(n²)

空间复杂度:O(n)

dp[i] 表示 以 nums[i] 结尾的最长递增子序列长度

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)
相关推荐
_深海凉_2 分钟前
LeetCode热题100-对称二叉树
算法·leetcode·职场和发展
运筹vivo@10 分钟前
两数之和(leetcode)
算法·leetcode·职场和发展
Mr_pyx22 分钟前
LeetCode Hot 100 - 最长递增子序列完全题解
算法·leetcode·职场和发展
Mr_pyx23 分钟前
LeetCode Hot 100 - 爬楼梯完全题解
算法·动态规划
进击的荆棘1 小时前
递归、搜索与回溯——综合(下)
c++·算法·leetcode·深度优先·dfs
故事和你9116 小时前
洛谷-【图论2-1】树4
开发语言·数据结构·c++·算法·动态规划·图论
故事和你9116 小时前
洛谷-【图论2-1】树1
开发语言·数据结构·c++·算法·深度优先·动态规划·图论
敲代码的嘎仔17 小时前
力扣高频SQL基础50题详解
开发语言·数据库·笔记·sql·算法·leetcode·后端开发
洛水水19 小时前
【力扣100题】46.单词拆分
算法·leetcode·职场和发展
alphaTao21 小时前
LeetCode 每日一题 2026/5/11-2026/5/17
算法·leetcode