給定乙個未排序的整數陣列,找出最長連續序列的長度。要求演算法的時間複雜度為 o(n)。
輸入: [100, 4, 200, 1, 3, 2]輸出: 4
解釋: 最長連續序列是 [1, 2, 3, 4]。它的長度為 4。
分析:本題降低時間複雜度的關鍵是:1,使用雜湊表的結構 2.針對不同的序列計算,已經計算的序列及時的剪枝
int
longestconsecutive
(vector<
int>
& nums)
unordered_set<
int>
m_nums
(nums.
begin()
,nums.
end())
;int res =0;
for(
auto num : nums)
res =
max(res,curnum);}
}return res;
}
leedcode 最長連續數列
輸入乙個亂序的連續數列,輸出其中最長連續數列長度,要求演算法複雜度為 o n 54,55,300,12,56 3。輸入樣例100,4,200,1,3,2 54,55,300,12 15,4,3,2,1 1,2,3,4,5,6輸出樣例421 56思路 將所有數都加入集合中,然後再遍歷這些數,因為我們能...
最長連續序列
題目 給定乙個未排序的整數陣列,找出最長連續序列的長度。例子 給出陣列 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,相當於連線起來。同時置...