128 最長連續序列

2021-10-06 21:08:29 字數 482 閱讀 3090

題目

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

要求演算法的時間複雜度為 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這個序列沒有必要判斷,因此對於當前遍歷到的值x,可以先判斷雜湊表中是否存在x-1,如果不存在,才對該值進行判斷,通過while迴圈判斷存在多長的連續序列。

class

solution

int maxlen=0;

for(

int num:nums)

maxlen=maxlenreturn maxlen;

}}

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...

128 最長連續序列

難度 困難 2020 6 6每日一題打卡 最近都昏昏沉沉的,不想好好學習,昨天的題拖到今天才寫,而且還看了答案 題目描述 解題思路 要求了演算法的時間複雜度,一般要求時間複雜度就用空間換時間,要求空間複雜度就用時間換空間 不過情況比較少見 所以用雜湊表來儲存陣列元素,能在o 1 時間內查詢 把所有的...