class Solution {
public:
int maximalSquare(vector<vector<char>>& matrix) {
if(!matrix.size()) return 0;
int m=matrix.size()+1,n=matrix[0].size()+1;
int **p=new int*[2];
p[0]=new int[n];
fill(p[0],p[0]+n,0);
p[1]=new int[n];
fill(p[1],p[1]+n,0);
bool f(0);
int ret(0);
for(int i=1;i<m;++i,f=!f)
{
for(int j=1;j<n;++j)
{
if(matrix[i-1][j-1]=='1')
{
p[f][j]=min(min(p[!f][j],p[!f][j-1]),p[f][j-1])+1;
ret=max(ret,p[f][j]);
}else{
p[f][j]=0;
}
}
}
return ret*ret;
}
};
leetcode - 221. Maximal Square
最新推荐文章于 2022-03-11 22:04:44 发布