題目
方法一:集合
用set去重
當前元素為nums[i],如果set中包含nums[i]-1的數,則跳過(這是一種優化,從連續子串行的起點開始記錄,可以減少遍歷次數)
如果set中不包含nums[i]-1的數,則遍歷記錄連續增長序列長度。
class
solution
int longeststreak =0;
for(
int num : num_set)
longeststreak = math.
max(longeststreak, currentstreak);}
}return longeststreak;
}}
方法二:排序
class
solution
arrays.
sort
(nums)
;int max =
1, cur =
1, last = nums[0]
;for
(int i =
0;i < nums.length;i++
)else
last = nums[i];}
max = math.
max(max, cur)
;return max;
}}
附加知識:arrays.sort()對二維陣列排序
int
nums =
newint[4
][4]
;arrays.
sort
(nums,
newcomparator
<
int[
]>()
})
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則計數...