首页 > 其他分享 >300-Longest Increasing Subsequnce-最长递增子序列

300-Longest Increasing Subsequnce-最长递增子序列

时间:2024-05-21 22:40:12浏览次数:26  
标签:nums 300 res 递增 Subsequnce int Longest 序列 dp

问题描述

链接: https://leetcode.com/problems/longest-increasing-subsequence/description/

Given an integer array nums, return the length of the longest strictly increasing subsequence

解释:给定一个数组nums,返回长的严格递增子序列。

案例:

Input: nums = [10,9,2,5,3,7,101,18]
Output: 4
Explanation: The longest increasing subsequence is [2,3,7,101], therefore the length is 4.

基本思想

经典题型。
构造数组dp,大小等于nums的大小。

  • \(dp[i]\): 以 \(nums[i]\)为结尾的最长严格递增子序列
  • 则 \(dp[i]\) 依赖于 \(nums[0~ i-1]\) 比 \(nums[i]\)小的数,对应的下标index相应的\(dp[index]\)
  • 其更新公式如下:
    • \(dp[i]\) = \(max(dp[j]+1)\) \(\quad\) 其中\(0<j<(i-1) \quad and \quad nums[j]<nums[i]\)$

时间复杂度 \(o(n^2)\)

代码

C++

    int lengthOfLIS(vector<int>& nums) {
        int n = nums.size();
        if(n<=1) return n;
        vector<int> dp(n,1); // dp[i]表示以nums[i]为结尾的最长递增子序列
        int res = 0;
        for(int i=1;i<n;++i) {
            int t = 1;
            for(int j=0;j<i;++j) {
                if (nums[j]<nums[i]) {
                    t = max(t, dp[j]+1);
                }
            }
            dp[i] = t;
            res = max(res, dp[i]);
        }
        return res;
    }

python

    def lengthOfLIS(self, nums: List[int]) -> int:
        n = len(nums)
        if n<=1: return n
        dp=[1] * n
        res = 1
        for i in range(1,n):
            t = 1
            for j in range(0,i):
                if nums[i] > nums[j]:
                    t = max(t, dp[j]+1) 
            dp[i] = t
            res = max(res, dp[i])
        return res

标签:nums,300,res,递增,Subsequnce,int,Longest,序列,dp
From: https://www.cnblogs.com/douniwanli/p/18205107

相关文章

  • 5-Longest Palindromic Substring-最长回文串
    问题描述链接:https://leetcode.com/problems/longest-palindromic-substring/description/Givenastring s,return thelongest palindromicsubstringins解释:给定一个字符串,求其最长的回文串回文串:一个字符串,如果从左往右读和从左往右读读出来的序列是一样的,称......
  • P3007 [USACO11JAN] The Continental Cowngress G
    P3007[USACO11JAN]TheContinentalCowngressG题目链接思路:2-SAT模板,经典的或条件,那么直接建图即可,对于可行解,我们直接枚举每个方案支持和反对,然后染色判断即可。代码:#include<bits/stdc++.h>usingnamespacestd;#definefffirst#definesssecond#definepbpush_......
  • 300. 最长递增子序列
    给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例1:输入:nums=[10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是[2,3,7,1......
  • 完整的牛津3000词汇表及牛津5000词汇表
      Oxford3000(牛津3000词)列出了每个英语学习者需要掌握的3000个核心词汇。 根据牛津英语语料库中的频率和与英语学习者的相关性进行选择;涵盖CEFR等级A1-B2学习者需要掌握的总单词的75%左右;每个单词都与CEFR等级对标,指导学习者明确所处等级应该掌握的单词;权威专......
  • LeetCode 3009. Maximum Number of Intersections on the Chart
    原题链接在这里:https://leetcode.com/problems/maximum-number-of-intersections-on-the-chart/description/题目:Thereisalinechartconsistingof n pointsconnectedbylinesegments.Youaregivena 1-indexed integerarray y.The kth pointhascoordinates......
  • 云渲染动画300帧要多久?瑞云渲染为你揭秘
    在动画制作过程中,渲染的速度非常关键。对于一个项目需要渲染的300帧来说,由于硬件的限制,许多公司的设备可能无法快速完成这项任务。此时,借助云渲染服务的强大计算能力,可以显著减少完成时间,从而提速整个项目的进度。接下来,让我们探索一下这一技术。一、动画渲染的方式1、本地渲染......
  • 非常完整的开源无刷电机驱动项目+仅1300行代码的C语言异步网络库+简单到傻瓜都会用的
    1、VESC-非常完整的开源无刷电机驱动项目ESC是ElectricSpeedController的缩写,也就是电子调速控制器,简称电调;项目作者是BenjaminVedder,所以叫VESC,就是本杰明电调。这个项目主要分为几个部分,VESC固件,物料清单,VESC硬件,VESC工具软件,是一个非常完整的软硬件项目,并且配套的软......
  • Hi3516DV300开发笔记001——SDK的安装与编译
    1安装SDK​ 在"【易百纳】EB-3516DV300-DC-182型开发板\04.开发板SDK包"找到"Hi3516CV500_SDK_V2.0.2.0.tgz"文件,拷入Linux系统中"work/tools"目录中。1.1解压缩SDK包​ 在Linux服务器上使用命令:tar-zxfHi3516CV500_SDK_V2.0.2.0.tgz​ 解压缩该文件,得到一个Hi3516C......
  • Unveiling the Enigma: Why Does Volvo 88890300 Vocom Communication Fail?
    Intheworldofautomotivediagnostics,Volvo88890300Vocomstandsasaprominenttoolfortechniciansandenthusiastsalike.ThisadvancedcommunicationdeviceenablesseamlessinteractionwithVolvovehicles,streamliningtroubleshootingandmaintenanc......
  • 读取速度超7300MB/s!佰维 NV7200 2TB SSD评测:不可思议的低温
    一、前言:专注高端的国产SSD最近几年,消费级市场出现了许多颇具实力的存储品牌,佰维(Biwin)就是其中之一。近日,我们快科技收到了佰维NV72002TBSSD,它拥有7200MB/s的顺序读取速度、4K随机读取也有1000KIOPS,非常适合用于游戏存储、AI创作等场景。佰维NV7200系列SSD采用的是联芸......