From 2021d1a3934f97205a7e8a80d0ef53fc63b8e74c Mon Sep 17 00:00:00 2001 From: Yudhvir Singh Date: Sun, 16 Jun 2024 17:18:49 -0700 Subject: [PATCH] problem 128, longest consecutive sequence --- python/problem_128/README.md | 27 +++++++++++++++++++ python/problem_128/solution1.py | 27 +++++++++++++++++++ .../{solution.py => solution1.py} | 0 3 files changed, 54 insertions(+) create mode 100644 python/problem_128/README.md create mode 100644 python/problem_128/solution1.py rename python/problem_2037/{solution.py => solution1.py} (100%) diff --git a/python/problem_128/README.md b/python/problem_128/README.md new file mode 100644 index 0000000..3b88941 --- /dev/null +++ b/python/problem_128/README.md @@ -0,0 +1,27 @@ +# 128. Longest Consecutive Sequence + +Given an unsorted array of integers nums, return the length of the longest consecutive elements sequence. + +You must write an algorithm that runs in O(n) time. + + + +Example 1: + +Input: nums = [100,4,200,1,3,2] +Output: 4 +Explanation: The longest consecutive elements sequence is [1, 2, 3, 4]. Therefore its length is 4. + +Example 2: + +Input: nums = [0,3,7,2,5,8,4,6,0,1] +Output: 9 + + + +Constraints: + + 0 <= nums.length <= 105 + -109 <= nums[i] <= 109 + + diff --git a/python/problem_128/solution1.py b/python/problem_128/solution1.py new file mode 100644 index 0000000..e3e74d5 --- /dev/null +++ b/python/problem_128/solution1.py @@ -0,0 +1,27 @@ +from typing import List + +class Solution: + def longestConsecutive(self, nums: List[int]) -> int: + if len(nums) <= 1: + return len(nums) + + nums.sort() + + longest = 1 + + temp_longest = 1 + prev = nums[0] + + for item in nums[1:]: + if item == prev + 1: + temp_longest += 1 + elif item == prev: + temp_longest += 0 + else: + temp_longest = 1 + prev = item + + if temp_longest > longest: + longest = temp_longest + + return longest diff --git a/python/problem_2037/solution.py b/python/problem_2037/solution1.py similarity index 100% rename from python/problem_2037/solution.py rename to python/problem_2037/solution1.py