Maximal Square ‘
Given a 2D binary matrix filled with 0’s and 1’s, find the largest square containing all 1’s and return its area.
For example, given the following matrix:
1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0
Return 4.
Credits:
Special thanks to @Freezen for adding this problem and creating all test cases.
代码
public class Solution {
public int maximalSquare(char[][] matrix) {
int row=matrix.length;
if(row==0) return 0;
int col=matrix[0].length;
int max=0;
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
char temp=matrix[i][j];
if(temp!='0'){
int num=0;
while(i+num<row&&j+num<col){
boolean flag=false;
for(int k=i;k<=i+num;k++ ){
for(int h=j;h<=j+num;h++){
if(matrix[k][h]=='0'){
flag=true;
break;
}
}
if(flag){
break;
}
}
if(flag){
break;
}
num++;
if(num>max){
max=num;
}
}
continue;
}
}
}
return max*max;
}
}