128 最長連續序列

2022-05-08 22:09:11 字數 1027 閱讀 6714

給定乙個未排序的整數陣列,找出最長連續序列的長度。

要求演算法的時間複雜度為 o(n)。

示例:輸入: [100, 4, 200, 1, 3, 2]

輸出: 4

解釋: 最長連續序列是 [1, 2, 3, 4]。它的長度為 4。

注意一點,題目說的序列長度是有幾個連續+1的數。

然後題目不讓用排序,用dict或者set做,這樣就是o(n)複雜度,乙個比較巧妙的地方:用當前元素減1的值試探集合,存在的話當前元素肯定不是其中一段最長連續子串行的起點,故跳過。

1

class

solution

8int res=0;9

for(int

t:st)

13int cnt=0;14

while

(st.count(t))

18 res=max(res,cnt);19}

20return

res;21}

22 };

1

class

solution:

2 def longestconsecutive(self, nums: list[int]) -> int

:3 nums=set

(nums)

4 res=1

if nums else05

for x in

nums:

6if x-1 not in

nums:

7 cur,y=1,x8

while y+1

innums:

9 cur+=1

10 y+=1

11 res=max(res,cur)

12return

res13

128 最長連續序列

題目 給定乙個未排序的整數陣列,找出最長連續序列的長度。要求演算法的時間複雜度為 o n 輸入 100,4,200,1,3,2 輸出 4 解釋 最長連續序列是 1,2,3,4 它的長度為 4。關鍵是使用雜湊表儲存。o n 複雜度 乙個序列為x,x 1,x 2,x y,那麼對於x 1,x 2,x y這...

128 最長連續序列

給定乙個未排序的整數陣列,找出最長連續序列的長度。要求演算法的時間複雜度為 o n 示例 輸入 100,4,200,1,3,2 輸出 4 解釋 最長連續序列是 1,2,3,4 它的長度為 4。思路 hash表 列舉,我們先用hash set儲存每乙個數,再遍歷每乙個數i為起始位置時,查詢是否存在i ...

128 最長連續序列

複雜度分析 時間複雜度 o n 其中 n 為陣列的長度。空間複雜度 o n 雜湊表儲存陣列中所有的數需要 o n 的空間。題解 class solution int next val 1 while table.find next table.end length max length,l retu...