Longest Increasing Subsequence Given an integer array nums, return the length of the longest strictly increasing subsequence .
Example 1:
Input: nums = [10,9,2,5,3,7,101,18] Output: 4 Explanation: The longest increasing subsequence is [2,3,7,101], therefore the length is 4. Example 2:
Input: nums = [0,1,0,3,2,3] Output: 4 Example 3:
Input: nums = [7,7,7,7,7,7,7] Output: 1
from typing import List
class Solution:
def lengthOfLIS(self, nums: List[int]) -> int:
dp = [1] * len(nums)
dp[0] = 1
max_length = 1
for right in range(1, len(nums)):
right_val = nums[right]
for left in range(0, right):
if nums[left] < right_val:
dp[right] = max(dp[right], dp[left] + 1)
max_length = max(max_length, dp[right])
return max_length
Solution().lengthOfLIS([10,9,2,5,3,7,101,18])
4