欢迎光临
我们一直在努力

连续序列

"""
连续序列
给定一个未排序的整数数组,找出最长的连续数字序列。
其中,不需要序列在原数组中是连续的。
"""

def longest_consecutive_sequence(numbers):
    """
    找出给定数字列表中最长的连续序列。

    :param numbers: 一个整数列表
    :return: 最长的连续序列列表
    """
    # 初始化最长序列为空列表
    longest = []
    # 将数字列表转换为集合,以便快速查找
    number_set = set(numbers)
    # 遍历集合中的每个数字
    for number in number_set:
        # 检查当前数字是否是序列的起点(即它前面的数字不存在于集合中)
        if number - 1 not in number_set:
            # 初始化当前序列的起点和当前最长序列
            current_number = number
            current_longest = [number]
            # 当当前数字的下一个数字存在于集合中时,继续扩展当前序列
            while current_number + 1 in number_set:
                current_number += 1
                current_longest.append(current_number)
            # 更新最长序列
            if len(current_longest) > len(longest):
                longest = current_longest
    return longest

if __name__ == '__main__':
    # 测试函数
    print(longest_consecutive_sequence([77, 33, 66, 88, 55, 99, 0, 100, 4, 200, 1, 3, 2]))
赞(0) 打赏
未经允许不得转载:创想未来 » 连续序列

评论 抢沙发

评论前必须登录!

 

更好的Python学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册