🏙️Largest Rectangle in Histogram
Question (LC.84)
Examples
I: heights = [2, 1, 5, 6, 2, 3]
O: 10 (2 x 5)
I: heights = [2, 4]
O: 4 (2 x 2, 1 x 4)Initial Approach
Code
public int largestRectangleArea(int[] heights) {
if (heights == null || heights.length == 0) {
return 0;
}
int maxRec = 0;
for (int i = 0; i < heights.length; i++) {
int lowestHeight = 10000;
for (int j = i; j < heights.length; j++) {
int width = j - i + 1;
lowestHeight = Math.min(lowestHeight, heights[j]);
maxRec = Math.max(maxRec, width * lowestHeight);
}
}
return maxRec;
}Better Approach
Monotonic Stack
Code
Reference
Last updated