LeetCode300-Longest Increasing Subsequence In Python

本题给出一个数字列表,要求在其中找出一个最长的递增序列,找出的数字可以不连续。

解题:本题考虑用动态规划的方法来做,先建立一个数组dp[],dp[i]表示到nums[i]这个数的最长递增序列,这样通过遍历比较就能递推出各自的dp[i]最后返回最大的那个dp就行。

代码:

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

猜你喜欢

转载自blog.csdn.net/nlxxqqh1/article/details/88291997