美文网首页
maximal-rectangle

maximal-rectangle

作者: DaiMorph | 来源:发表于2019-07-22 00:27 被阅读0次
class Solution {
public:
    int maximalRectangle(vector<vector<char> > &matrix) {
        int row=matrix.size(),col=matrix[0].size();
        if(row==0||col==0)return 0;
        int res=0;
        vector<int>height(col,0);
        for(int i=0;i<row;i++)
        {
            for(int j=0;j<col;j++)
            {
                height[j]=matrix[i][j]=='0'?0:(height[j]+1);
            }
            res=max(res,largestarea(height));
        }
        return res;
    }
    int largestarea(vector<int>height)
    {
        stack<int>st;
        int res=0;
        height.push_back(0);
        for(int i=0;i<height.size();)
        {
            if(st.empty()||height[st.top()]<=height[i])st.push(i++);
            else{
                int temp=st.top();
                st.pop();
                res=max(res,height[temp]*(st.empty()?i:(i-st.top()-1)));
            }
        }
        return res;
    }
};

相关文章

网友评论

      本文标题:maximal-rectangle

      本文链接:https://www.haomeiwen.com/subject/dgyblctx.html