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