128 最長連續序列

2021-10-06 21:14:45 字數 612 閱讀 2967

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

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

示例:

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

輸出: 4

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

思路:hash表+列舉,我們先用hash set儲存每乙個數,再遍歷每乙個數i為起始位置時,查詢是否存在i+1,i+2,。。。來找到最大長度,但並不需要列舉每乙個i,對於乙個i如果存在i-1,則沒有必要列舉它,應為無論如何,它一定包含在i-1為起始的序列中,這樣就能把時間複雜度控制在o(n);

class

solution

int res=0;

for(

int num : nums)

else

res = math.

max(res, max);}

}return res;

}}

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 其中 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 時間內查詢 把所有的...