一個透過 Python 找到最長連續序列長度的程式


假設我們有一個無序的數字陣列,我們必須找到連續元素的最長序列長度。

因此,如果輸入類似於 nums = [70, 7, 50, 4, 6, 5],則輸出將為 4,因為連續元素的最長序列是 [4, 5, 6, 7]。因此,我們返回其長度:4。

為了解決這個問題,我們將遵循以下步驟 −

  • nums := nums 的所有唯一元素

  • max_cnt := 0

  • 對於 nums 中的每個 num,執行以下操作:

    • 如果 num - 1 不在 nums 中,則

      • cnt := 0

      • 當 num 存在於 nums 中時,執行以下操作:

        • num := num + 1

        • cnt := cnt + 1

      • max_cnt := max_cnt 和 cnt 的最大值

  • 返回 max_cnt

讓我們看看以下實現以獲得更好的理解 −

示例

 線上演示

class Solution:
   def solve(self, nums):
      nums = set(nums)
      max_cnt = 0
      for num in nums:
         if num - 1 not in nums:
            cnt = 0
            while num in nums:
               num += 1
               cnt += 1
            max_cnt = max(max_cnt, cnt)
      return max_cnt
ob = Solution()
nums = [70, 7, 50, 4, 6, 5]
print(ob.solve(nums))

輸入

[70, 7, 50, 4, 6, 5]

輸出

4

更新於: 10-10-2020

713 次瀏覽

開啟您的 職業生涯

完成課程,獲得認證

立即開始
廣告
© . All rights reserved.