JSFiddle - React, Tailwind, and code Playground

by Kai Wang

JavaScript

function maxArea(heights) {
  let max_area = 0;
  let rv = [];
  for (let i = 0; i < heights.length - 1; i++) {
    for (let j = i + 1; j < heights.length; j++) {
      let h = Math.min(heights[i], heights[j]);
      let area = h * (j - i);
      area > max_area ? rv = [i, j] : null;
      area > max_area ? max_area = area : null;

    }
  }
  return rv
}

function maxArea1(heights) {
  let max_area = 0;
  let rv = [];
  let l = 0,
    r = heights.length - 1;
  while (l < r) {
    let area = Math.min(heights[l], heights[r]) * (r - l);
    if (area > max_area) {
      max_area = area;
      rv = [l, r];
    }
    heights[l] > heights[r]?r--:l++;
  }
  return rv
}
var a = [1, 2, 2, 3, 4, 5];
var b = maxArea1(a);
console.log(b)