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
广告