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