Leetcode•Sep 07, 2025
Largest Rectangle in Histogram
Hazrat Ali
Leetcode
Given an array of integers heights
representing the histogram's bar height where the width of each bar is 1
, return the area of the largest rectangle in the histogram.
Example 1:
Input: heights = [2,1,5,6,2,3] Output: 10 Explanation: The above is a histogram where width of each bar is 1. The largest rectangle is shown in the red area, which has an area = 10 units.
Example 2:
Input: heights = [2,4] Output: 4
Solution
/**
* @param {number[]} heights
* @return {number}
*/
const largestRectangleArea = heights => {
const n = heights.length;
const stack = new Stack();
let max = 0;
for (let i = 0; i <= n; i++) {
while (!stack.isEmpty() && (i === n || heights[i] < heights[stack.peek()])) {
const height = heights[stack.pop()];
const width = stack.isEmpty() ? i : i - 1 - stack.peek();
max = Math.max(max, width * height);
}
stack.push(i);
}
return max;
};