程序查找Python中最长连续序列的长度

假设我们有一个未排序的数字数组,我们必须找到连续元素的最长序列的长度。

因此,如果输入类似于nums = [70、7、50、4、6、5],则输出为4,因为连续元素的最长序列为[4、5、6、7]。所以我们返回它的长度:4。

为了解决这个问题,我们将遵循以下步骤-

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

  • max_cnt:= 0

  • 对于以num为单位的每个num

    • cnt:= 0

    • 当num以num的形式出现时,

    • max_cnt:= max_cnt和cnt的最大值

    • num:= num + 1

    • cnt:= cnt + 1

    • 如果num-1不是以num为单位,则

    • 返回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