128. 最长连续序列
Posted yuanmingzhou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了128. 最长连续序列相关的知识,希望对你有一定的参考价值。
给定一个未排序的整数数组,找出最长连续序列的长度。
要求算法的时间复杂度为 O(n)。
示例:
输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是[1, 2, 3, 4]。它的长度为 4。
class Solution(object): def longestConsecutive(self, num): """ :type nums: List[int] :rtype: int """ if num is None or len(num) == 0: return 0 m = {} res = 0 for i in num: if i not in m: l = 0 r = 0 if i - 1 in m: l = m[i - 1] if i + 1 in m: r = m[i + 1] m[i] = 1 + r + l m[i + r] = 1 + r + l m[i - l] = 1 + r + l res = max(res, m[i]) return res
以上是关于128. 最长连续序列的主要内容,如果未能解决你的问题,请参考以下文章