solution accepted
This commit is contained in:
parent
15bd3181c2
commit
4e83f1d5ea
@ -3,33 +3,26 @@ def longestConsecutive(nums):
|
|||||||
:type nums: List[int]
|
:type nums: List[int]
|
||||||
:rtype: int
|
:rtype: int
|
||||||
"""
|
"""
|
||||||
# Handle edge-case
|
# If list empty, return 0
|
||||||
if len(nums) < 1:
|
if not nums:
|
||||||
return 0
|
return 0
|
||||||
nums.sort()
|
|
||||||
sequence = [nums[0]]
|
# Create a set for O(n) search
|
||||||
answer = 0
|
num_set = set(nums)
|
||||||
temp = None
|
longest_streak = 0
|
||||||
print(nums)
|
|
||||||
for r in range(len(nums)):
|
for num in num_set:
|
||||||
# print(nums[r])
|
if num - 1 not in num_set: # Start of a potential streak
|
||||||
# print(f'seq is {sequence} with len of {len(sequence)}')
|
current_num = num
|
||||||
if nums[r] == max(sequence)+1 and nums[r] not in sequence:
|
current_streak = 1
|
||||||
# print(f'hit {nums[r]}')
|
|
||||||
sequence.append(nums[r])
|
while current_num + 1 in num_set: # Continue the streak
|
||||||
elif nums[r] == max(sequence):
|
current_num += 1
|
||||||
continue
|
current_streak += 1
|
||||||
else:
|
|
||||||
print(f'seq is {sequence} with len of {len(sequence)}')
|
longest_streak = max(longest_streak, current_streak)
|
||||||
if len(sequence) > answer:
|
|
||||||
answer = len(sequence)
|
return longest_streak
|
||||||
# print('hit')
|
|
||||||
sequence.clear()
|
|
||||||
sequence.append(nums[r])
|
|
||||||
if len(sequence) > answer:
|
|
||||||
return len(sequence)
|
|
||||||
else:
|
|
||||||
return answer
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user