Python 中最长的连续序列


假设我们有一个整数数组。我们必须找到最长连续元素序列的长度。因此,如果输入类似于 [100, 4, 250, 1, 3, 2],答案将为 4,因为最长的连续序列是 [1,2,3,4]。

为了解决这个问题,我们将按照以下步骤进行操作 −

  • 将数组设为 set,longest := 0

  • 对于 range 数组中的 i −

    • 如果 i – 1 不在 a 中 −

      • current := i,streak := 0

      • 当 i 在 a 中 −

        • 将 i 增加 1,将 streak 增加 1

        • longest := longest 和 streak 中的最大值

  • 返回 longest

示例

让我们看以下实现以更好地理解 −

 在线演示

class Solution(object):
   def longestConsecutive(self, a):
      a = set(a)
      longest = 0
      for i in a:
         if i-1 not in a:
            current = i
            streak = 0
            while i in a:
               i+=1
               streak+=1
               longest = max(longest,streak)
      return longest

ob = Solution()
print(ob.longestConsecutive([100,4,250,1,3,2]))

输入

[100,4,250,1,3,2]

输出

4

更新于:2020 年 5 月 26 日

5000+ 浏览

重启你的 职业

完成课程认证

开始
广告