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