题目描述
给定整数数组 `nums`,请返回最长严格递增子序列的长度。
示例:
输入:`[10,9,2,5,3,7,101,18]`
输出:`4`
def longest_increasing_subsequence(nums):
tails = []
for num in nums:
left, right = 0, len(tails)
while left < right:
mid = (left + right) // 2
if tails[mid] < num:
left = mid + 1
else:
right = mid
if left == len(tails):
tails.append(num)
else:
tails[left] = num
return len(tails)