题目
题解:动态规划
代码语言:javascript复制class Solution {
public:
int dp[1005][1005];
int dp2[1005][1005];
int maximalSquare(vector<vector<char>>& matrix) {
int n=matrix.size();
int m;
if(n>0)
m=matrix[0].size();
if(m<=0)
return 0;
int ans=0;
for(int i=0;i<n;i )
{
for(int l=0;l<m;l )
{
for(int j=0;j l<m;j )
{
int k=j l;
if(k==j)
{
if(matrix[i][k]=='1')
{
dp[j][k]=1;
ans=max(ans,dp[j][k]);
}
}
else
{
if(dp[j][j]&&dp[j 1][k])
{
dp[j][k]=k-j 1;
if(dp2[j][k])
{
dp[j][k]=dp2[j][k] k-j 1;
}
if(dp[j][k]/(k-j 1)==k-j 1)
ans=max(ans,dp[j][k]);
}
}
}
}
for(int j=0;j<m;j )
{
for(int k=j;k<m;k )
{
dp2[j][k]=dp[j][k];
dp[j][k]=0;
}
}
}
return ans;
}
};