题目描述:
Longest Consecutive Sequence(最长连续序列)
中文:
给定一个未排序的整数数组,找出最长连续序列的长度。
要求算法的时间复杂度为 O(n)。
英文:
Given an unsorted array of integers, find the length of the longest consecutive elements sequence.
Your algorithm should run in O(n) complexity.
class Solution(object): def longestConsecutive(self, nums): """ :type nums: List[int] :rtype: int """ Dict = {} for i in nums: Dict[i] = 1 List = Dict.keys() count_max = 0 while(len(Dict)): List = Dict.keys() count = 1 temp_left = List[0] temp_right = List[0] Dict.pop(temp_left) while(1): if temp_left-1 in Dict and temp_right+1 in Dict: count = count+2 temp_left = temp_left-1 temp_right = temp_right+1 Dict.pop(temp_left) Dict.pop(temp_right) continue elif temp_left-1 not in Dict and temp_right+1 in Dict: count = count+1 temp_right = temp_right+1 Dict.pop(temp_right) continue elif temp_left-1 in Dict and temp_right+1 not in Dict: count = count+1 temp_left = temp_left-1 Dict.pop(temp_left) continue else: if count>count_max: count_max=count break else: break return count_max
题目来源:力扣