最长递增子序列

题目链接:

300. 最长递增子序列 - 力扣(LeetCode)

思路:

  1. 需要尤为注意的一点是 题目 所说的递增子序列,指的是 可以不连续的 子序列

  2. 我们采用 dp 算法,当前位置 dp[i] 的最优值(最大值),需要是遍历,i 位置前面的 其他元素,看是否 nums[i] 大于 nums[j] ,并拿到 j 位置的 最优值 dp[j] +1 作为 dp[i] 的值,这个值需要遍历前面的所有位置的最优解,不断迭代,拿到当前位置的最优解

代码:

javascript 复制代码
/**
 * @param {number[]} nums
 * @return {number}
 */
var lengthOfLIS = function (nums) {
    if (!nums.length) return 0
    if (nums.length <= 1) return 1;
    let res = 1, dp = new Array(nums.length + 10).fill(1);
    for (let i = 1; i < nums.length; i++) {
        for (let j = i - 1; j >= 0; j--) {
            if (nums[i] > nums[j]) {
                dp[i] = Math.max(dp[j] + 1, dp[i])
            }
        }
        res = Math.max(res, dp[i])
    }

    return res
};
相关推荐
栀秋6662 分钟前
从零开始调用大模型:使用 OpenAI SDK 实现歌词生成,手把手实战指南
前端·llm·openai
l1t2 分钟前
DeepSeek总结的算法 X 与舞蹈链文章
前端·javascript·算法
gihigo19984 分钟前
水声信号处理中DEMON谱分析的原理、实现与改进
算法·信号处理
歌_顿10 分钟前
微调方法学习总结(万字长文!)
算法
@小码农15 分钟前
202512 电子学会 Scratch图形化编程等级考试四级真题(附答案)
java·开发语言·算法
智航GIS24 分钟前
6.2 while循环
java·前端·python
2201_7578308724 分钟前
AOP核心概念
java·前端·数据库
雪人.27 分钟前
JavaWeb经典面试题
java·服务器·前端·java面试题
mit6.82430 分钟前
右端点对齐|镜像复用
算法
JIngJaneIL36 分钟前
基于java+ vue学生成绩管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端