无序数组返回其中最长连续序列长度
时间: 2023-12-30 08:06:01 浏览: 103
找出一组数据中连续出现数据最长的算法
首先,我们可以使用哈希集合来解决这个问题。我们遍历数组,将所有元素存入集合中。然后再次遍历数组,对于每个元素,我们检查它是否是一个连续序列的起始元素(也就是它的前一个元素不在集合中)。如果是起始元素,我们就开始向后遍历,计算连续序列的长度,并更新最长连续序列的长度。
下面是一个示例代码:
```python
def longestConsecutive(nums):
num_set = set(nums)
max_length = 0
for num in nums:
if num - 1 not in num_set: # 起始元素
current_num = num
current_length = 1
while current_num + 1 in num_set: # 向后遍历
current_num += 1
current_length += 1
max_length = max(max_length, current_length)
return max_length
```
示例输入和输出:
输入: [100, 4, 200, 1, 3, 2]
输出: 4(最长连续序列为 [1, 2, 3, 4])
输入: [9, 1, 4, 7, 3, -1, 0, 5, 8, -1, 6]
输出: 7(最长连续序列为 [-1, 0, 1, 3, 4, 5, 6])
阅读全文