algos_and_structures/neetcode/arrays/longest_consecutive_sequence/solution.py

33 lines
870 B
Python

from typing import List
import pytest
class Solution:
def longestConsecutive(self, nums: List[int]) -> int:
if len(nums) == 0:
return 0
res: List[List[int]] = []
for i in range(0, len(nums)):
if i == 0:
res.append([nums[i]])
continue
e = nums[i]
for ri in range(0, len(res)):
if res[ri][-1] + 1 == e:
res[ri].append(e)
break
res.append([e])
return res
return max([len(r) for r in res])
@pytest.mark.parametrize(
"input_value, expected_value",
[
([2, 20, 4, 10, 3, 4, 5], 4),
([0, 3, 2, 5, 4, 6, 1, 1], 7),
],
)
def test_solution(input_value, expected_value):
s = Solution()
assert s.longestConsecutive(nums=input_value) == expected_value