給定乙個未排序的整數陣列,找出最長連續序列的長度。
要求演算法的時間複雜度為 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 時間內查詢 把所有的...