最長連續序列
給定乙個未排序的整數陣列,找出最長連續序列的長度。
要求演算法的時間複雜度為 o(n)。
示例:輸入: [100, 4, 200, 1, 3, 2]
輸出: 4
解釋: 最長連續序列是 [1, 2, 3, 4]。它的長度為 4。
1.自己的嘗試
class
solution
ans = math.
max(ans, j - i+1)
;}return ans;
}}
能通過一半,輸入:
[1,2,0,1]輸出2
預期結果
3對於這種元素重複的不可行的
改用hashset盛放元素
因此要進行修改,首先不能用j來計數了,可以引入乙個新的變數
class
solution
else}}
//ans;最後還是需要再比較一次的
return math.
max(ans, now);}
}
2.雜湊表和線性空間的構造
自己原有的思路
class
solution
for(
int nn:nums)
ans = math.
max(ans, size);}
return ans;
}}
細節修改
class
solution
for(
int nn:nums)
ans = math.
max(ans, size);}
}return ans;
}}
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...