题解 | #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())

全部评论

相关推荐

04-29 18:07
常州大学 Java
寂静羽翼:兄弟我已经亲身经历了,双非没实习很多大厂还是会给笔试的,可是有的公司笔试做的好也不给面一直卡着,ssob基本看我没实习都拒绝我了,但是每天投满偶尔也能有一两场初创公司的面试,但是薪资基本在五六千
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务