将元素都存储到集合里面, 遍历集合里面的元素, 如果这个元素是序列的起点(num-1不在set中), 则向后找后续的序列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
/**
* 将元素都存储到集合里面, 遍历集合里面的元素,
* 如果这个元素是序列的起点(num-1不在set中), 则向后找后续的序列
*/
public int longestConsecutive(int[] nums) {
Set<Integer> s = new HashSet<>();
for (int num : nums) {
s.add(num);
}
int ans = 0;
for (Integer num : s) {
if (!s.contains(num-1)) {
int n = num;
int len = 1;
while (s.contains(++n)) {
len++;
}
ans = Math.max(ans, len);
}
}
return ans;
}
}

Comments
Recent Posts
进程树
进程管理
Categories
Website Info
Article Count :
3
Total Word Count :
4.6k
Unique Visitors :
Page Views :
Last Update :