解法
class Solution {
public int longestConsecutive(int[] nums) {
// set存储元素,只关心是否存在,不关心位置
Set<Integer> set = new HashSet<>();
for (int num : nums) {
set.add(num);
}
int maxLen = 0;
for (int num : nums) {
// set里面没有当前元素前一个值时,从这个元素开始算连续长度
// 有前一个值就不用算了,再算也不会比上个值为起点算大了
if (!set.contains(num - 1)) {
int curLen = 1;
while (set.contains(++num)) {
curLen += 1;
}
maxLen = Math.max(curLen, maxLen);
}
}
return maxLen;
}
}
网友评论