300. Longest Increasing Subsequence

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

subsequence is a sequence that can be derived from an array by deleting some or no elements without changing the order of the remaining elements. For example, [3,6,2,7] is a subsequence of the array [0,3,1,6,2,2,7].




def lengthOfLIS(self, nums: List[int]):
       
    dp = []
   
    for n in nums:            
        d = len(dp) - 1
        while d>=0 and n <= dp[d]:
            d -= 1
        d = d+1
       
        if d == len(dp):
            dp.append(n)
        else:
            dp[d] = n

    return len(dp)

Comments

Popular posts from this blog

849. Maximize Distance to Closest Person

347. Top K Frequent Elements

139. Word Break