题目

直接暴力破解

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));
}