给定一个未排序的整数数组,找出数组连续的最长的序列并且打印列表
时间: 2024-05-01 09:16:32 浏览: 94
JavaScript实现找出数组中最长的连续数字序列
思路:先将数组排序,然后遍历数组,统计当前连续序列的长度和起始数字,如果当前数字不是上一个数字的后继,则当前连续序列结束,比较当前连续序列长度和最长连续序列长度,如果当前连续序列更长,则更新最长连续序列的长度和起始数字。
代码如下:
```python
def longestConsecutive(nums):
if not nums:
return []
nums.sort()
max_len = 1
cur_len = 1
start = nums[0]
res = [start]
for i in range(1, len(nums)):
if nums[i] == nums[i-1] + 1:
cur_len += 1
elif nums[i] != nums[i-1]:
if cur_len > max_len:
max_len = cur_len
res = list(range(start, start+max_len))
cur_len = 1
start = nums[i]
if cur_len > max_len:
res = list(range(start, start+cur_len))
return res
```
测试:
```python
print(longestConsecutive([100, 4, 200, 1, 3, 2])) # [1, 2, 3, 4]
print(longestConsecutive([1, 2, 0, 1])) # [0, 1, 2]
```
阅读全文