LintCode:最长连续序列

来源:互联网 发布:清华大学王斌算法考试 编辑:程序博客网 时间:2024/05/01 21:30

LintCode:最长连续序列

题目要求O(n)复杂度,我这个算法虽然通过了,但是排序操作至少就是O(nlgn)的复杂度了,额,还得再想想。

class Solution:    """    @param num, a list of integer    @return an integer    """    def longestConsecutive(self, num):        # write your code here        if not num:            return        num = sorted(list(set(num)))        ans = 1        tmp = 1        for i in range(1, len(num)):            if num[i] - num[i-1] == 1 or num[i] - num[i-1] == 0:                tmp += 1            else:                tmp = 1            ans = max(ans, tmp)        return ans
0 0
原创粉丝点击