题解 | #最大矩形#

最大矩形

http://www.nowcoder.com/practice/5720efc1bdff4ca3a7dad37ca012cb60

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param matrix int整型vector<vector<>> 
     * @return int整型
     */
    int maximalRectangle(vector<vector<int> >& matrix) {
        // write code here
        
        int m = matrix.size(), n = matrix[0].size();
        vector<vector<int>> dp(m, vector<int>(n, 0));
        
        for(int i=0; i<m; i++){
            for(int j=0; j<n; j++){
                if(matrix[i][j] == 1){
                    dp[i][j] = j==0? 1: dp[i][j-1]+1;
                }
            }
        }
        
        int res = 0;
        for(int i=0; i<m; i++){
            for(int j=0; j<n; j++){
                if(dp[i][j] > 0){
                    int width = dp[i][j];
                    int area = dp[i][j];
                    for(int k=i-1; k>=0; k--){
                        width = min(width, dp[k][j]);
                        area = max(area, width * (i-k+1));
                    }
                    res = max(res, area);
                }
            }
        }
        return res;
    }
};
全部评论

相关推荐

积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
最近拿到了正浩的提前批offer感觉自己的实力得到了肯定,也给了我更多底气
搞机墨镜猫:正浩提前批官网好像就只有电力电子软硬件,哥们投的是这两个岗位吗
26届校招投递进展
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务