参考
http://blog.youkuaiyun.com/doc_sgl/article/details/11805519
代码
class Solution {
public:
int largestRectangleArea(vector<int> &height) {
stack<int> stackArray;
height.push_back(0);
int i = 0;
int maxArea = 0;
while(i<height.size())
{
if(stackArray.empty()||height[stackArray.top()]<=height[i])
{
stackArray.push(i);
i++;
}
else
{
int topIndex = stackArray.top();
stackArray.pop();
maxArea = max(maxArea, height[topIndex]*(stackArray.empty()? i:i-stackArray.top()-1));
}
}
return maxArea;
}
};
471

被折叠的 条评论
为什么被折叠?



