題目描述:給定乙個未排序的陣列,找出最長連續序列的長度。要求演算法的時間複雜度為o(n)。
題解:暴力求解很容易想到:列舉每個數字作為序列的第乙個數字,搜尋所有的可能性。
但是並不是每個列舉都是有意義的,例如[1,3,4,2,5,6,8]。這裡只對1,8列舉有意義,剩下的元素都不是最長連續序列候選片段的起始點。
抓住這個規律就可以把時間複雜度拉下來了。(這裡用unordered_map,無序的map,底層的實現為hash表,空間換時間)。
ac**:
classsolution
ans = max(ans,tmp-nums[i]);}}
return
ans;
}};
leetcode128 最長連續序列
給定乙個未排序的整數陣列,找出最長連續序列的長度。要求演算法的時間複雜度為 o n 示例 輸入 100,4,200,1,3,2 輸出 4 解釋 最長連續序列是 1,2,3,4 它的長度為 4。建立乙個dict,如果num不在裡面就檢視左右連續長度,再給num和左右處賦值 class solution...
Leetcode 128 最長連續序列
給定乙個未排序的整數陣列,找出最長連續序列的長度。要求演算法的時間複雜度為 o n 示例 輸入 100,4,200,1,3,2 輸出 4 解釋 最長連續序列是 1,2,3,4 它的長度為 4。複製 這道題目最開始大家想的肯定是sort,然後計數計算最長序列。但是要求時間複雜度為 o n 就不能用so...
LeetCode128 最長連續序列
原題目給定乙個未排序的整數陣列,找出最長連續序列的長度。要求演算法的時間複雜度為 o n 示例 輸入 100,4,200,1,3,2 輸出 4 解釋 最長連續序列是 1,2,3,4 它的長度為 4。題目分析 方法一 排序直接查詢法 先對陣列進行快排,然後從開始開始比較前後兩者是否相差1,相差1則計數...