3求一个无序列表中最大长度的连续自然数
Posted 雅虎跳跳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3求一个无序列表中最大长度的连续自然数相关的知识,希望对你有一定的参考价值。
一个列表中全是自然数,是无序的,计算这个列表中最大长度的连续自然数。比如[1,5,7,9,12,17,,6,6],返回结果为 [5,6,7]
def get_longest_num(list1): longest_num = [] long_tmp = [] flag = True longth = 1 last_longest = 0 list1 = sorted(list1) for j, i in enumerate(list1): if(flag): num_start = i flag = False if(i == list1[j-1] and j!=len(list1)-1): continue elif(list1[j-1] == i-1): long_tmp.append(i) if(list1[j-1] != i-1 or j == len(list1)-1): if(longth>last_longest): longest_num = [] longest_num.append(long_tmp) elif(longth==last_longest and longth != 0): longest_num.append(long_tmp) long_tmp = [] long_tmp.append(i) last_longest = longth if(longth>last_longest) else last_longest longth = 1 num_start = i longth = longth + 1 print(longest_num) get_longest_num([0,1,2,5,6,6,6,7,7])
def get_longest_num(list1):longest_num = []long_tmp = []flag = Truelongth = 1last_longest = 0list1 = sorted(list1)for j, i in enumerate(list1):if(flag):num_start = iflag = False
if(i == list1[j-1] and j!=len(list1)-1):continueelif(list1[j-1] == i-1):long_tmp.append(i)if(list1[j-1] != i-1 or j == len(list1)-1):if(longth>last_longest):longest_num = []longest_num.append(long_tmp)elif(longth==last_longest and longth != 0):longest_num.append(long_tmp)long_tmp = []long_tmp.append(i)last_longest = longth if(longth>last_longest) else last_longestlongth = 1num_start = ilongth = longth + 1print(longest_num)
get_longest_num([0,1,2,5,6,6,6,7,7])
以上是关于3求一个无序列表中最大长度的连续自然数的主要内容,如果未能解决你的问题,请参考以下文章
在一个无序整数数组中,找出连续增长片段最长的一段, 增长步长是1。Example: [3,2,4,5,6,1,9], 最长的是[4,5,6]
2022-08-22:给定一个数组arr,长度为n,最多可以删除一个连续子数组, 求剩下的数组,严格连续递增的子数组最大长度。 n <= 10^6。 来自字节。5.6笔试。