简单的最长单调递增子序列
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))



京公网安备 11010502036488号