solution accepted

This commit is contained in:
Jacob Delgado 2023-09-07 02:01:26 -07:00
parent 15bd3181c2
commit 4e83f1d5ea

View File

@ -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