Given an array of integers heights representing the histogram's bar heights where the width of each bar is 1, return the area of the largest rectangle in the histogram.
We use analytics and advertising cookies to understand how the site is used and whether our ads on Facebook and Instagram work. They are set only if you accept. See our Privacy Policy for details.
Given an array of integers heights representing the histogram's bar heights where the width of each bar is 1, return the area of the largest rectangle in the histogram.
A hard monotonic stack problem, graded against 7 test cases (4 of them hidden).
A stack kept sorted, for next-greater and largest-rectangle style questions.
Reach for it when you see: "Next greater/smaller element", or a maximum rectangle/area over a histogram.
More Monotonic Stack problems →Iterate left to right keeping a stack of indices whose heights are strictly increasing. When we hit a bar shorter than the stack's top, we pop the top: the popped bar's "right boundary" is the current index, its "left boundary" is the new top of the stack (or -1 if empty), and its width is `right - left - 1`. After the loop, treat all remaining stack entries as having a right boundary at `n`. Push a sentinel of height 0 at the end to flush the stack cleanly.
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
Read off this problem's own test suite, so these are the cases a submission actually has to survive.
These apply to the pattern as a whole, not just this problem.