题目
128. 最长连续序列
官方题解
方法一:哈希表
使用哈希表存储数组中的元素,然后对于每个元素,检查其前驱元素是否存在,以此来找到连续序列的起点,并计算序列长度。
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
| class Solution {
public:
int longestConsecutive(vector<int>& nums) {
unordered_set<int> num_set;
for (auto num : nums) {
num_set.insert(num);
}
int res = 0;
for (auto num : num_set) {
if (!num_set.count(num - 1)) {
int cur = num;
int len = 1;
while (num_set.count(cur + 1)) {
len ++;
cur ++;
}
res = max(res, len);
}
}
return res;
}
};
|