lee128最長連續序列 時間O N

2021-10-06 21:14:45 字數 1027 閱讀 9120

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

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

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

輸出: 4

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

需注意的是 ,有相同數 就跳過不算

class

solution

else

if(nums[i+1]

== nums[i]

)else

maxcount = math.

max(maxcount,count);}

return maxcount;

}}

注意:set.remove(num) 如果有num就true,無就false,根據這個條件可以得出以下簡單寫法。

先把元素都裝到set中,

遍歷陣列

每次看當前元素 有沒有 有的話就 先看小於它得,累加,再看大於它的,累加,

每次更新最大值max

class

solution

// system.out.println(set);

int maxcount =0;

for(

int num:nums)

// system.out.println("dangqian"+count+" "+maxcount);

cur = num;

while

(set.

remove

(cur+1)

)

maxcount = math.

max(maxcount,count)

;// system.out.println(count+" "+maxcount);}}

return maxcount;

}}

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