您的位置:首页 > 其它

LeetCode--largest-rectangle-in-histogram

2018-01-08 17:04 393 查看


题目描述

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 =10unit.

For example,

Given height =[2,1,5,6,2,3],

return10.

class Solution {
public:
int largestRectangleArea(vector<int> &height)
{
int res = 0;
stack<int> si;
height.push_back(0);
for(int i = 0; i < height.size(); ++ i)
{
while(!si.empty() && height[si.top()] >= height[i])
{
int h = height[si.top()];
si.pop();

int s = h * (si.empty() ? i : (i - si.top() - 1));
res = max(res, s);
}
si.push(i);
}
return res;
}
};

这道题的相关分析及类似题型是:LeetCode--maximal-rectangle
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: