最長連續序列

2022-05-04 03:33:10 字數 616 閱讀 1893

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

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

示例:

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

輸出: 4

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

解析:可以把這道題想象成最大島嶼面積的那道題,就是求最大的連在一起的

1、先把所有的數字都放進set中

2、這個時候遍歷陣列,隨便找到乙個數字n,就在set中判斷n-1在不在裡面,再判斷n-2 一直向左延伸,只要有就把這個數字去掉(最大島嶼那道題,遍歷過的島嶼都要置為0),同理向右延伸

那麼當前n所能延伸到的最大長度為 左延伸 + 右延伸 + 1

3、在遍歷陣列的過程中,一直更新最大值即可

class

solution

for (int i = 0; i < len; i++)

from =nums[i];

while (set.remove(++from))

res = math.max(res, left + right + 1);

}return

res;

}}

最長連續序列

題目 給定乙個未排序的整數陣列,找出最長連續序列的長度。例子 給出陣列 100,4,200,1,3,2 這個最長的連續序列是 1,2,3,4 返回所求長度 4。挑戰 要求你的演算法複雜度為o n 方法 將序列中的所有數存到乙個unordered set中。對於序列裡任意乙個數a i 我們可以通過se...

最長連續序列

給定乙個未排序的整數陣列,找出最長連續序列的長度。要求演算法的時間複雜度為 o n 示例 1,2,3,4 它的長度為 4。思路 用乙個字典儲存中間值遍歷陣列,對於數字i,找到的i 1和i 1的對應的值值,如果不存在則記為0。然後把我的值值設為i 1,i 1個的值值之和,並加1,相當於連線起來。同時置...

最長連續序列

給定乙個未排序的整數陣列,找出最長連續序列的長度。要求演算法的時間複雜度為 o n 示例 輸入 100,4,200,1,3,2 輸出 4 解釋 最長連續序列是 1,2,3,4 它的長度為 4。時間複雜度o n log n public intlongestconsecutive int nums a...