leetcode128 最長連續序列

2021-10-24 10:06:08 字數 1058 閱讀 4380

題目

方法一:集合

用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則計數...