From 15bd3181c229ebb77199ab9a26de956001f9d6c4 Mon Sep 17 00:00:00 2001 From: ImAlpha Date: Wed, 6 Sep 2023 11:15:15 -0700 Subject: [PATCH] solves 69/73 cases, timed out --- .../128_Longest_Consecutive_Sequence.py | 21 ---------- .../128_Longest_Consecutive_Sequence.py | 40 +++++++++++++++++++ 2 files changed, 40 insertions(+), 21 deletions(-) delete mode 100644 NeetCodeRoadmap/Arrays_and_Hashing/128_Longest_Consecutive_Sequence.py create mode 100644 NeetCodeRoadmap/Two_Pointers/128_Longest_Consecutive_Sequence.py diff --git a/NeetCodeRoadmap/Arrays_and_Hashing/128_Longest_Consecutive_Sequence.py b/NeetCodeRoadmap/Arrays_and_Hashing/128_Longest_Consecutive_Sequence.py deleted file mode 100644 index 992e21c..0000000 --- a/NeetCodeRoadmap/Arrays_and_Hashing/128_Longest_Consecutive_Sequence.py +++ /dev/null @@ -1,21 +0,0 @@ -def longestConsecutive(nums): - """ - :type nums: List[int] - :rtype: int - """ - nums.sort() - length = len(nums) - sequence = [] - larger = [] - for x in nums: - if x < length and x not in sequence: - sequence.append(x) - elif x == max(sequence)+1: - sequence.append(x) - else: - larger.append(x) - return len(sequence) - -print(longestConsecutive([100,4,200,1,3,2])) -print(longestConsecutive([0,3,7,2,5,8,4,6,0,1])) -print(longestConsecutive([1,3,5,2,4])) \ No newline at end of file diff --git a/NeetCodeRoadmap/Two_Pointers/128_Longest_Consecutive_Sequence.py b/NeetCodeRoadmap/Two_Pointers/128_Longest_Consecutive_Sequence.py new file mode 100644 index 0000000..13b7a89 --- /dev/null +++ b/NeetCodeRoadmap/Two_Pointers/128_Longest_Consecutive_Sequence.py @@ -0,0 +1,40 @@ +def longestConsecutive(nums): + """ + :type nums: List[int] + :rtype: int + """ + # Handle edge-case + if len(nums) < 1: + 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 + + + +# print(longestConsecutive([100,4,200,1,3,2])) +# print(longestConsecutive([0,3,7,2,5,8,4,6,0,1])) +# print(longestConsecutive([1,3,5,2,4])) +# print(longestConsecutive([9,1,4,7,3,-1,0,5,8,-1,6])) +print(longestConsecutive([1,2,0,1])) \ No newline at end of file