欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode-221.最大正方形

程序员文章站 2022-07-13 21:59:25
...

题目:
LeetCode-221.最大正方形
代码:

class Solution {
public:
    int maximalSquare(vector<vector<char>>& matrix) {
        if(matrix.size()==0) return 0;
        int m=matrix.size(),n=matrix[0].size();
        int ans[m][n];
        int a=0;
        //ans[0][0]=matrix[0][0]-'0';
        for(int i=0;i<n;i++) {ans[0][i]=matrix[0][i]-'0';if(a<ans[0][i]) a=ans[0][i];}
        for(int i=0;i<m;i++) {ans[i][0]=matrix[i][0]-'0';if(a<ans[i][0]) a=ans[i][0];}
        for(int i=1;i<m;i++){
            for(int j=1;j<n;j++){
                if(matrix[i][j]=='0') ans[i][j]=0;
                else{
                    ans[i][j]=1+min(ans[i-1][j],min(ans[i][j-1],ans[i-1][j-1]));
                    if(a<ans[i][j]) a=ans[i][j];
                }
            }
        }
        return a*a;
    }
};