221.最大正方形


221. 最大正方形

难度中等332

在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。

示例:

输入: 

1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0

输出: 4

class Solution {
public:
    int maximalSquare(vector<vector<char>>& matrix) {
        int n = matrix.size();
        if(n==0){
            return 0;
        }
        int m = matrix[0].size();
        int ret =0;
        int dp[n+5][m+5];
        memset(dp,0,sizeof dp);
        for(int i = 0;i<n;i++){
            for(int j = 0;j<m;j++){
                if(matrix[i][j]=='1'){
                    if(i==0 || j==0){
                        dp[i][j] = 1;
                    }
                    else {
                        dp[i][j] = min(min(dp[i-1][j-1],dp[i-1][j]),dp[i][j-1])+1;
                    }
                    ret = max(ret,dp[i][j]);
                }
            }
        }
        return ret*ret;
    }
};

文章作者: anlen123
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 anlen123 !
 上一篇
236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先
236. 二叉树的最近公共祖先难度中等504 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x
2020-05-10 anlen123
下一篇 
1361.验证二叉树 1361.验证二叉树
1361.验证二叉树二叉树上有 n 个节点,按从 0 到 n - 1 编号,其中节点 i 的两个子节点分别是 leftChild[i] 和 rightChild[i]。 只有 所有 节点能够形成且 只 形成 一颗 有效的二叉树时,返回 tr
2020-05-07 anlen123
  目录