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