128 最長連續序列

2021-10-08 08:12:47 字數 746 閱讀 7702

題目描述:

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

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

示例:

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

輸出: 4

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

方法1:使用hash對映

主要思路:

(1)先將陣列使用unordered_set進行對映統計,便於後面直接判斷某個值的存在性;

(2)然後遍歷陣列中的每乙個元素,對於每乙個元素,這裡的關鍵點是判斷當前元素的前乙個值不存在,既!st.count(elem-1),此時說明了這個元素elem是個某個序列的第乙個元素,然後就可以以該元素作為起始值,使用unordered_set 逐漸的判斷其後的值是否存在在陣列中,找出以該元素elem作為起始值的最長序列,然後再更新可能的最長序列即可,既 max_len=max(max_len,cur_len);

class

solution

int max_len=0;

//遍歷陣列中的元素

for(

int& elem:nums)

max_len=

max(max_len,cur_len)

;//更新最大值}}

return max_len;}}

;

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