在一个由 '0'
和 '1'
组成的二维矩阵内,找到只包含 '1'
的最大正方形,并返回其面积。
JAVA:
class Solution {
public int maximalSquare(char[][] matrix) {
int n=matrix.length;
if(n==0) return 0;
int m=matrix[0].length;
int[][] dp=new int[n][m];
int res=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;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],dp[i][j-1]),dp[i-1][j-1])+1;//dp递归比较左上斜构造所围最大正方形
}
res=Math.max(res,dp[i][j]);
}
}
}
return res*res;
}
}