如果 num 的加入使連續序列的長度增加,那么一定是因為它與 num-1 或 num+1 連成了一片。
連成一片后,只需要讓連續序列的兩個端點保持最新記錄,不需要關心除端點以外的元素。
classSolution:def longestConsecutive(self, nums:List[int])->int:result =0record={}for num in nums:if num in record:continuel, r = num, numif num -1 in record:l =record[num -1][0]if num +1 in record:r =record[num +1][1]if r - l +1> result:result = r - l +1record[num]=(l, r) # 占位,避免重復record[l]=(l, r)record[r]=(l, r)for r in record:print(str(r)+": "+str(record[r]))return result