124. 最长连续序列

124. 最长连续序列

中文English

给定一个未排序的整数数组,找出最长连续序列的长度。

样例

样例 1

输入 : [100, 4, 200, 1, 3, 2]
输出 : 4
解释 : 这个最长的连续序列是 [1, 2, 3, 4]. 返回所求长度 4

说明

要求你的算法复杂度为O(n)

class Solution:
    """
    @param num: A list of integers
    @return: An integer
    """
    '''
    大致思路:
    1.先排序,然后判断下一位是否大于当前,如果大于c += 1,否则c重置,最终返回m
    '''
    def longestConsecutive(self, num):
        num.sort()
        num.append(min(num)-1)
        c = 1
        m = 0
        for i in range(len(num)-1):
            if num[i+1] == num[i]:
                continue
            if num[i+1] == num[i] + 1:
                c += 1 
            else:
                if c > m:
                    m = c
                c = 1
        return  m
原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12829048.html