python最长连号题解
时间: 2024-12-22 11:17:06 浏览: 10
在Python中解决"最长连续数字序列"这个问题,通常会采用滑动窗口(Sliding Window)算法。这个算法的基本思想是维护两个指针,一个开始指针(left)用于查找起始位置,另一个结束指针(right)用于更新当前已找到的最大序列长度。遍历数组时,不断移动右指针,并检查从左指针到右指针之间的数字是否连续。如果连续,就更新最大长度;如果不连续,则移动左指针到下一个连续数字的位置。
以下是一个简单的Python实现:
```python
def longest_consecutive(nums):
num_set = set(nums)
max_len = 0
for num in num_set:
if num - 1 not in num_set:
current_num = num
current_len = 1
while current_num + 1 in num_set:
current_num += 1
current_len += 1
max_len = max(max_len, current_len)
return max_len
# 示例
nums = [0, 3, 7, 2, 6, 5, 8, 4, 9, 1]
print(longest_consecutive(nums)) # 输出:4,因为最长连续序列是[2, 3, 4, 5] 或者 [6, 7, 8, 9]
```
在这个函数中,`num_set`用于存储已经遇到的数字,避免重复比较。`current_num`和`current_len`分别表示当前连续序列的起点和长度。
阅读全文