题解 | #Redraiment的走法#
Redraiment的走法
http://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
实际上就是求:最长递增子序列
可参考300. 最长递增子序列,动规(+二分):
input()
nums = list(map(int, input().split()))
tails, res = [0] * len(nums), 0
for num in nums:
i, j = 0, res
while i < j:
m = (i+j)//2
if tails[m] < num: i = m + 1
else: j = m
tails[i] = num
if res == j: res += 1
print(res)
