首页 > 其他分享 >300. 最长递增子序列

300. 最长递增子序列

时间:2023-10-23 19:34:20浏览次数:36  
标签:nums 300 max 递增 序列 最长 dp

链接

https://leetcode.cn/problems/longest-increasing-subsequence/description/

思路

经典DP题目。

我们用dp[i]代表了第i个元素为最终子序列长度的最长递增子序列的长度。

总体思想就是,对于某个子序列i,去遍历它前面的dp[0~i-1],看看满足条件的dp[0~i-1]中最长的是哪个。

所以状态转移方程为: dp[i] = max(dp[i], dp[j]+1)。

所以时间复杂度为O(n**2)

代码

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

"""
[0,1,0,3,2,3]
"""

 

 

标签:nums,300,max,递增,序列,最长,dp
From: https://www.cnblogs.com/bjfu-vth/p/17783263.html

相关文章

  • 无涯教程-Clojure - 序列
    序列是在"seq"命令的帮助下创建的。以下是一个简单的序列创建示例。(nsclojure.examples.example(:gen-class));;ThisprogramdisplaysHelloLearnfk(defnExample[](println(seq[123])))(Example)上面的程序产生以下输出。(123)以下是可用于序列的......
  • 115不同的子序列
    本题有两种思路:在s中找到t的开头字母,假设s[1]==t[0],那么dp(s,1,t,0)就等于dp(s,2,t,1);假设在s中找到s[i]==t[j],那么将会有两种情况:1.就让i位置和j匹配:dp(s,i+1,t,j+1)2.不让i位置和j匹配:dp(s,i+1,t,j);如果i和j的位置都不匹配当然直接算dp(s,i+1,t,j);无论什么情况都会i+1......
  • LeetCode 300. 最长递增子序列
    最长递增子序列题目链接:300.最长递增子序列题目描述:给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例1:输入:nums=[10,9,2,5,3,......
  • LeetCode 376. 摆动序列
    最长递增子序列题目链接:376.摆动序列题目描述:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为**摆动序列。**第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如,[1,7,4,9,2,5]是一个摆动序列,因为差值......
  • 1.参考例5.2.1,设计一个序列检测器。功能是检测出串行输入数据Sin中的4位二进制序列010
    设计块:moduleDetector2(inputCP,Sin,nCR,outputregOut);reg[1:0]Current_state,Next_state;parameterS0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11;always@(posedgeCP,negedgenCR)begin if(~nCR)   begin    Current_state......
  • 序列化
    ###Serializer#models.pyfromdjango.dbimportmodelsclassRole(models.Model):title=models.CharField(verbose_name="标题",max_length=32)order=models.IntegerField(verbose_name="顺序")#views.pyfromdjango.dbimportmode......
  • 【HTML】第四讲:有序列表和无序列表
    今天你进步了吗!@放纵lili一、有序列表。1、以数字和字母等可以表示顺序的符号为项目符号来排列列表项的列表为有序列表。2、形式:共有以下五种。3、基本语法:#记忆起来也很容易的:ol就是orderlist有序列表li就是列表。4、<li>标签里可以任意嵌套,但是<ol>标签,就只能嵌套<li>标签。5、t......
  • json序列化数据超出最大值(maxJsonLength)
    https://www.cnblogs.com/ellafive/p/13704301.html 1、序列化:以下代码在对象过大时会报错:进行序列化或反序列化时出错。字符串的长度超过了为maxJsonLength属性设置的值。//jsonObj比较大的时候会报错varserializer=newJavaScriptSerializer();returnserializer.Ser......
  • [BJWC2018] 序列合并
    朴素的\(O(n^4)\)是容易的,考虑如何优化,通过一些观察可以发现\(\texttt{dp}\)不具有凸性和决策单调性,所以只能用普通的矩阵乘法来优化,我们令\(\texttt{dp}\)数组构成的矩阵为\(A\),那么\(dp_{l,r}\)则可以从所有\(L\leqslantx\leqslantR\)的\(A^x\)转移而来,我们采用......
  • 序列化错误
    org.springframework.data.redis.serializer.SerializationException:Cannotserialize;nestedexceptionisorg.springframework.core.serializer.support.SerializationFailedException:FailedtoserializeobjectusingDefaultSerializer;nestedexceptionisjava.......