假设我们有一个未排序的数字数组,我们必须找到连续元素的最长序列的长度。
因此,如果输入类似于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