Largest Rectangular in Histogram
Anonymous User
149
/**
 * @param {number[]} heights
 * @return {number}
 */
/**
 * @param {number[]} heights
 * @return {number}
 */
const largestRectangleArea = function(heights) {
  const len = heights.length;
  const stack = [];
  let max = 0;
  let h = 0;
  let w = 0;
  
  for (let i = 0; i <= len; i++) {
    while (stack.length && (i === len || heights[i] <= heights[stack[stack.length - 1]])) {
      h = heights[stack.pop()];
      w = stack.length === 0 ? i : i - stack[stack.length - 1] - 1;
      max = Math.max(max, h * w);
    }
    stack.push(i);
  }
  
  return max;
};
Comments (0)