LeetCode 128 最長連續序列

2022-04-29 17:09:15 字數 881 閱讀 6428

給定乙個未排序的整數陣列,找出最長連續序列的長度、

要求演算法的時間複雜度為o(n).

示例

輸入:[100, 4, 200, 1, 3, 2]

輸出:4

解釋:最長連續序列是[1, 2, 3, 4]。它的長度為4

思路一

先由小到大進行排序

考慮三種情況:

前後相差1,則是連續序列

前後相等,迴圈continue

最後乙個元素,break

def longestconsecutive(nums) -> int:

if nums:

nums.sort()

#print(nums)

ans = #儲存最大序列

max_seq = 1

for i, val in enumerate(nums):

#print("序號:%s 值:%s"%(i, val)) 序號從零開始

if(i == len(nums) - 1):

break;

if(nums[i] == nums[i+1]):

continue

if(nums[i] - nums[i+1] == -1):

max_seq += 1

else:

max_seq = 1

return max(ans)

else:

return 0

if __name__ == "__main__":

nums = [100, 4, 200, 1, 3, 2]

print(longestconsecutive(nums))

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