class Solution {
public int longestConsecutive(int[] nums) {
int n = nums.length;
int length = 0;
Set<Integer> hashset = new HashSet<>();
for (int i : nums) {
hashset.add(i);
}
for (int j : nums) {
int len = 1;
if (!hashset.contains(j - 1)) {
int num = j;
while (hashset.contains(num + 1)) {
len++;
num++;
}
}
length = Math.max(length, len);
}
return length;
}
}
先把所有数放到set中
如果当前数-1在set里 continue
如果不在set里:
1)加一在set中,那么我们根据这个数找到当前最长的串
2)加一不在set里,continue。