Beat Seat

  • n, 1

function bestSeat(seats) {

  let s = 0;
  let e = 0;

  let seat = [-1, -1];
  while (e < seats.length) {
    let left = seats[s];
    let right = seats[e];

    if (left === 1) {
      s++;
      e++;
      continue;
    }

    if (right === 1) {
      const [m, length] = calcSeat(s, e - 1);
      if (seat[1] < length) {
        seat = [m, length];
      }
      
      s = e;
      e += 1;
      continue;
    }

    e++;
  }
  
  return seat[0];
}

const calcSeat = (s, e) => {
  return [s + Math.floor((e - s) / 2), e - s];
}

// Do not edit the line below.
exports.bestSeat = bestSeat;

Last updated