简单的最长单调递增子序列

import bisect
n = int(input())

nums = list(map(int, input().split()))

tails = []
for idx, num in enumerate(nums):
    if idx == 0:
        tails.append(num)
        continue
    t = bisect.bisect_left(tails, num)
    if t >= len(tails):
        tails.append(num)
    elif num < tails[t]:
        tails[t] = num
print(len(tails))