题解 | #Redraiment的走法#求最长子序列,使用二分法的变形去维护一个递增数组

Redraiment的走法

http://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa

n = int(input()) string = list(map(lambda x:int(x),input().strip().split(' ')))

def binsearch1(li, target): start = 0 end = li.len() - 1 res = None while start <= end: mid = (start + end) // 2 # if li[mid] == target: # return mid if li[mid] >= target: res = mid if res == 0: return res end = mid - 1 elif li[mid] < target: start = mid + 1

return res if res != None else -1

li = [] for i in range(n): if not li: li.append(string[i]) else: c = binsearch1(li, string[i]) if li[-1] <= string[i]: li.append(string[i]) else: li[c] = string[i] print(li.len())

全部评论

相关推荐

在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务