/**
 * @param {number[]} nums
 * @return {number}
 */
const longestConsecutive = (nums) => {
  let set = new Set(), maxCount = 0;

  for (let i = 0; i < nums.length; i++) {
    set.add(nums[i]);
  }

  for (let val of set) {
    if (!set.has(val - 1)) {
      let expand = 0;
      while (set.has(val + expand)) {
        expand++;
      }
      maxCount = Math.max(expand, maxCount);
    }
  }

  return maxCount;
};