Largest Range

  • nlog, 1

function largestRange(arr) {
  arr.sort((a, b) => a - b);
  console.log({ arr });
  
  let max = [arr[0], arr[0]];
  let range = [arr[0], arr[0]];
  
  for (let i = 1; i < arr.length; i++) {
    // same or diff is 1
    if (arr[i] - arr[i - 1]  <= 1) {
      // extend
      range[1] = arr[i];    
      continue;
    }
    console.log({
      range
    });

    // update
    const curr = Math.abs(max[1] - max[0]);
    const next = Math.abs(range[1] - range[0]);
    if (curr < next) {
      max = range;
    }

    // default
    range = [arr[i], arr[i]];
  }

      // update
  const curr = Math.abs(max[1] - max[0]);
  const next = Math.abs(range[1] - range[0]);
  if (curr < next) {
    max = range;
  }

  return max;
}

// Do not edit the line below.
exports.largestRange = largestRange;
  • n, n

Last updated