在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。
示例:
代码:
public int maximalSquare(char[][] matrix)
{
int m=matrix.length,n=matrix[0].length;
int min=0;
int[][]dp=new int[m][n];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
if(matrix[i][j]=='1')
{
if(i==0||j==0)
{
dp[i][j]=1;
}
else
{
dp[i][j]=Math.min(Math.min(dp[i-1][j-1], dp[i-1][j]), dp[i][j-1])+1;
}
}
min=Math.max(min, dp[i][j]);
}
return min*min;
}