Faaez Razeen

Longest Increasing Subsequence

  • 2 min read
  • LC-Medium
  • Dynamic Programming

3 years ago

Solution

Dynamic Programming

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