300. Longest Increasing Subsequence
Given an integer array nums, return the length of the longest strictly increasing subsequence. A 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]) -> int:
trail = []
for num in nums:
i = bisect_left(trail, num)
if i == len(trail):
trail.append(num)
else:
trail[i] = num
return len(trail)