-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path128.py
More file actions
69 lines (30 loc) · 955 Bytes
/
Copy path128.py
File metadata and controls
69 lines (30 loc) · 955 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
128. Longest Consecutive Sequence
Medium
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
Example 3:
Input: nums = [1,0,1,2]
Output: 3
Constraints:
0 <= nums.length <= 105
-109 <= nums[i] <= 109
"""
class Solution:
def longestConsecutive(self, nums: List[int]) -> int:
numset = set(nums)
longest = 0
for n in numset:
if (n - 1) not in numset:
length = 1
while (n + length) in numset:
length += 1
longest = max(longest, length)
return longest