Largest rectangle in Histogram
Given n non-negative integers representing the histogram‘s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.
Above is a histogram where width of each bar is 1, given height = [2,1,5,6,2,3].
The largest rectangle is shown in the shaded area, which has area = 10 unit.For example,Given height = [2,1,5,6,2,3],return 10.
Solution Analysis:
Yuanyou blog Analysis
Apply for a secondary stack, which only storesMonotonic increasing Index
Class solution {public: int largestrectanglearea (vector <int> & height) {If (height. size () = 0) return 0; height. push_back (0); // facilitates the final calculation of all rectangular area STD: Stack <int> STK; // stores the array index subscript int result = 0; for (INT I = 0; I I-STK. Top ()-1); Result = STD: max (result, Area) ;}} return result ;}};
Time Complexity T (n) = O (N)
Leetcode: largest rectangle in histogram maximum rectangular area