最长连续序列

问题:

# 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 
#
# 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

解决:遍历每一个数,若是从起点开始数是复合要求,就遍历下一个,之后维护最大值

# leetcode submit region begin(Prohibit modification and deletion)
class Solution:
    def longestConsecutive(self, nums: List[int]) -> int:
        nums = set(nums)  # 自动去重排序
        res = 0
        for i in nums:
            if i - 1 not in nums:
                y = i + 1
                while y in nums:
                    y += 1
                # 更新最大长度
                res = max(res, y - i)
        return res
# leetcode submit region end(Prohibit modification and deletion)

 

posted @ 2021-09-08 21:49  今夜无风  阅读(29)  评论(0编辑  收藏  举报