33 lines
870 B
Python
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
|