最长递增子序列

题目链接:

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
};
相关推荐
好评1246 分钟前
【C++】二叉搜索树(BST):从原理到实现
数据结构·c++·二叉树·二叉搜索树
老陈聊架构17 分钟前
『AI辅助Skill』掌握三大AI设计Skill:前端独立完成产品设计全流程
前端·人工智能·claude·skill
程序猿炎义38 分钟前
【Easy-VectorDB】Faiss数据结构与索引类型
数据结构·算法·faiss
Ulyanov1 小时前
从桌面到云端:构建Web三维战场指挥系统
开发语言·前端·python·tkinter·pyvista·gui开发
cypking1 小时前
二、前端Java后端对比指南
java·开发语言·前端
糠帅傅蓝烧牛肉面1 小时前
单实例多MCP聚合服务:两种实现方案深度对比
前端·docker·ai
JosieBook1 小时前
【Vue】12 Vue技术—— Vue 事件修饰符详解:掌握事件处理的高级技巧
前端·javascript·vue.js
天赐学c语言1 小时前
1.20 - x的平方根 && vector的扩容机制以及删除元素是否会释放内存
c++·算法·leecode
艾斯特_2 小时前
Echarts常用配置项及解释
前端·javascript·echarts
jiaguangqingpanda2 小时前
Day24-20260120
java·开发语言·数据结构