/**
* dp表示最大正方形边长,dp[i][j] = MIN(dp[i-1][j-1], dp[i][j-1], dp[i-1][j]);
*/
int maximalSquare(char** matrix, int matrixSize, int* matrixColSize){
int max =0,max_temp=0;
for(int i =0;i<matrixSize;i++)
{
for(int j =0;j<matrixColSize[i];j++)
{
if(matrix[i][j]=='1')
{
int k;
int flag =1;
for(k =0;((i+k)<matrixSize)&&((j+k)<matrixColSize[i])&&(flag==1);k++)
{
max_temp=k;
for(int l=0;(l<=k)&&(flag==1);l++)
{
for(int p =0;(p<=k)&&(flag==1);p++)
{
if(matrix[i+l][j+p]=='0')
{
flag=0;
}
}
}
if(flag==1)
{
max_temp=k+1;
}
}
if(max_temp>max)
{
max=max_temp;
}
}
}
}
return max*max;
}
直接暴力