84. 柱状图中最大的矩形

84. 柱状图中最大的矩形

class Solution {
public:
    int largestRectangleArea(vector& heights) {
        int n=heights.size();
        if(n==0)return 0;
        vectornewheight(n+2,0);
        for(int i=1;i<=n;i++){
            newheight[i]=heights[i-1];
        }
        heights=newheight;
        n=heights.size();
        stackstk;
        stk.push(0);
        int res=0;
        for(int i=1;iheights[i]){
                int h=heights[stk.top()];
                stk.pop();
                int w=i-stk.top()-1;
                res=max(res,w*h);
            }
            stk.push(i);
        }
        return res;
    }
};
单调栈练习

你可能感兴趣的:(84. 柱状图中最大的矩形)