直接暴力破解
var maximalSquare = function(matrix) {
let zero = 0;
let max = 0;
for(let i = 0; i < matrix.length; i++){
for(let j = 0; j < matrix[i].length; j++){
if(matrix[i][j]==='1'){
zero++;
max = Math.max(maxSquare(matrix,i,j,1),max);
}
}
}
if(zero===0)return 0;
return Math.pow(max+1,2);
};
function maxSquare(matrix,i,j,x){
if(i+x >= matrix.length)return 0;
if(j+x >= matrix[0].length)return 0;
for(let h=i;h<=i+x;h++){
if(matrix[h][j+x]==='0')return 0;
}
for(let h=j;h<=j+x;h++){
if(matrix[i+x][h]==='0')return 0;
}
return Math.max(x, maxSquare(matrix,i,j,x+1));
}