【leetcode】300. 最长递增子序列

题目

动态规划

dpi含义是前i个元素最长子序列的长度。初始情况下dp数组所有元素赋值1。

当遍历到numsi,去找前面比当前值小的numsj,dpi = dpj + 1,又因为是要找到以当前numsi为结尾的最长的子序列,所以遍历前面全部的numsj,dpi要取最大的的dpj然后加上1,因此代码中要作比较保存最大值。

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

遍历整个dp时间复杂度为O(n),算出每个dpi时间复杂度为O(n),总时间复杂度为O(n²)。

空间复杂度为O(n)。

相关推荐
生态学者6 小时前
Global Change Biology | 森林越“步调一致”,反而越怕干旱?树木生长与叶片活动的同步之谜
大数据·人工智能·算法·r语言·微信公众平台
lsswear6 小时前
Agent 框架新手入门与实战部署指南
大数据·人工智能·算法
考研保研资料分享7 小时前
2022编辑出版跨保西北大学中国史:五校面试与九月补材料
面试·职场和发展
Data analyse4568 小时前
rnweb 回放数据量太大怎么办?分片存储与断点续传的实现思路
前端·网络·算法·数据分析
员工风险管理实务8 小时前
职务侵占有什么价值?岗位关联性与必要性判断
职场和发展
Navigator_Z9 小时前
LeetCode //C - 1293. Shortest Path in a Grid with Obstacles Elimination
c语言·算法·leetcode
Nil20810 小时前
leetcode 64最小路径和
算法·leetcode·职场和发展
光影少年10 小时前
AI Agent、自动化与未来工作
人工智能·算法·架构
牧羊人.33310 小时前
计算机视觉基础 第16章|EigenFace,FisherFace,LBPH传统人脸识别算法
人工智能·算法·计算机视觉
考研保研资料分享10 小时前
双非新闻学保研复盘:东华小组展示、长安面试与兰大预推免
面试·职场和发展