Longest Increasing Subsequence

Given an unsorted array of integers, find the length of longest increasing subsequence. Tags: Dynamic Programming

Try It!

Discussion

Video

Solution

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