import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 最大正方形
* @param matrix char字符型二维数组
* @return int整型
*/
public int solve (char[][] matrix) {
// write code here
int m = matrix.length;
if (m == 0) {
return 0;
}
int n = matrix[0].length;
int[][] dp = new int[m+1][n+1];
int size = 0;
for (int i = 1;i <= m ; i++) {
for (int j = 1;j <= n; j++){
if (matrix[i-1][j-1] == '1') {
dp[i][j] = Math.min(dp[i-1][j],Math.min(dp[i][j-1],dp[i-1][j-1])) + 1;
size = Math.max(dp[i][j],size);
}
}
}
return size*size;
}
}