剑指 Offer II 039. 直方图最大矩形面积

103 阅读1分钟

剑指 Offer II 039. 直方图最大矩形面积

答案思路全在下面这张图上,你看看

  • 先遍历
  • 当遇到红色的时候,这时候开始计算面积,取最优值
  • 最后的面积为了考虑到,给不上一个长度为0的矩形

image.png

var largestRectangleArea = function (arr) {
  arr = arr.concat(0);
  var brr = [-1];
  var res = 0;
  var f = (brr) => brr[brr.length - 1];
  for (var i = 0; i < arr.length; i++) {
    while (f(brr) != -1 && arr[f(brr)] >= arr[i]) {
      var h = arr[brr.pop()];
      var w = i - f(brr) - 1;
      res = Math.max(res, h * w);
    }
    brr.push(i);
  }
  return res;
};
console.log(largestRectangleArea([2, 1, 5, 6, 2, 3]));