Largest Rectangle in Histogram
程序员文章站
2022-06-17 22:50:05
...
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 heights = [2,1,5,6,2,3]
,
return 10
.
class Solution {
public:
int largestRectangleArea(vector<int>& heights) {
if( heights.size() == 0)
return 0;
heights.push_back(-1);
int max = 0;
int index = 0;
stack<int> s;
while(index < heights.size())
{
if(s.size() == 0 || heights[s.top()] <= heights[index])
{
s.push(index);
index++;
}
else
{
int top = s.top();
s.pop();
int size = 0;
if(s.size() == 0)
size = heights[top]*index;
else
size = heights[top]*(index - s.top() -1);
if(size > max)
max = size;
}
}
return max;
}
};
终于写出来了,唉
推荐阅读
-
【题解】hdu1506 Largest Rectangle in a Histogram
-
教你利用Python玩转histogram直方图的五种方法
-
[Trie] The XOR Largest Pair
-
2019牛客暑期多校训练营(第二场)H Second Large Rectangle
-
The XOR Largest Pair(tire树)
-
Problem 8: Largest product in a series
-
Find the largest open file through lsof
-
Leetcode 391. Perfect Rectangle
-
5. Kth Largest Element
-
Largest Submatrix (最大全1子矩阵)