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