/**
* @param {number[]} nums
* @return {number}
*/
var longestConsecutive = function(nums) {
if(!nums.length){
return 0;
}
nums.sort((a, b) => a - b);
let list = [nums[0]];
for(let i = 1; i < nums.length; ++i){
if(nums[i] !== nums[i - 1]){
list.push(nums[i]);
}
}
let max = 0, sequence = [];
for(let i = 0; i < list.length; ++i){
if(!sequence.length){
sequence.push(list[i]);
}
else{
if(Math.abs(list[i] - sequence[sequence.length - 1]) === 1){
sequence.push(list[i]);
}
else if(Math.abs(list[i] - sequence[sequence.length - 1]) > 1){
if(sequence.length > max){
max = sequence.length;
}
sequence = [list[i]];
}
}
}
if(sequence.length > max){
max = sequence.length;
}
return max;
};