給定乙個未排序的整數陣列,找出最長連續序列的長度。
要求演算法的時間複雜度為 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、在遍歷陣列的過程中,一直更新最大值即可
classsolution
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...