您的位置:首页 > 其它

LeetCode---(84)Largest Rectangle in Histogram

2015-06-23 23:22 459 查看
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
.

class Solution {
public:
int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
int largestRectangleArea(vector<int>& height) {
height.push_back(0);
stack<int> s;
int result=0;
int temp;
for(int i=0;i<height.size();)
{
if(s.empty()||height[i]>height[s.top()])
{
s.push(i);
i++;
}
else{
temp=s.top();
s.pop();
result=max(result,height[temp]*(s.empty()?i:i-s.top()-1));
}
}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: