最长连续序列Python解法
生活随笔
收集整理的這篇文章主要介紹了
最长连续序列Python解法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定一個未排序的整數(shù)數(shù)組 nums ,找出數(shù)字連續(xù)的最長序列(不要求序列元素在原數(shù)組中連續(xù))的長度。
請你設計并實現(xiàn)時間復雜度為 O(n) 的算法解決此問題。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/longest-consecutive-sequence
?
例:
輸入:nums = [100,4,200,1,3,2] 輸出:4 解釋:最長數(shù)字連續(xù)序列是 [1, 2, 3, 4]。它的長度為 4。解析:
先去重,然后遍歷數(shù)組,有比當前數(shù)字小的存在于數(shù)組中直接跳過,找尋序列中最小的那個,然后向上查找,存儲查找到的最長序列長度并進行存儲。
class Solution(object):def longestConsecutive(self, nums):""":type nums: List[int]:rtype: int"""longest = 0 # 最長序列長度nums = set(nums) # 去重for num in nums: # 遍歷數(shù)組if num - 1 not in nums: # 只從序列中最小的那一個開始查詢now_num = numnow_long = 1 # 當前最長長度while now_num + 1 in nums: # 查詢now_num += 1now_long += 1longest = max(longest, now_long) # 比較返回最大的那個return longest # 返回最大值總結
以上是生活随笔為你收集整理的最长连续序列Python解法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ps中的图层是什么意思(ps里栅格化图层
- 下一篇: 刺激战场怎么获取创建房间权限