python 给定一个未排序的整数数组,找出数字连续的最长序列并且打印出列表
时间: 2024-06-04 21:12:28 浏览: 119
以下是一个示例代码,使用了集合来进行快速查找和判断:
def find_longest_sequence(nums):
# 将所有数字放入集合中
num_set = set(nums)
# 初始化最长序列和长度为0
longest_sequence = []
longest_length = 0
# 遍历每个数字
for num in num_set:
# 如果该数字的前一个数字不在集合中,则该数字为一个序列的起点
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
# 如果当前序列长度大于最长序列长度,则更新最长序列
if current_length > longest_length:
longest_length = current_length
longest_sequence = [num + i for i in range(current_length)]
# 返回最长序列
return longest_sequence
# 示例输入
nums = [1, 9, 3, 10, 4, 20, 2]
# 输出最长序列并打印
longest_sequence = find_longest_sequence(nums)
print(longest_sequence) # 输出 [1, 2, 3, 4]
阅读全文