Lang:Java
Edit12345678910111213141516171819202122232425262728293031import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while(in.hasNext()) {int height = in.nextInt();int width = in.nextInt();int[][] city = new int[height][width];for(int m = 0;m < height;m++){for(int n = 0;n < width;n++){city[m][n] = in.nextInt();}}System.out.println(maximalSquare(city));}}public static int maximalSquare(int[][] city) {int rows = city.length, cols = rows > 0 ? city[0].length : 0;int[][] dp = new int[rows + 1][cols + 1];int maxsqlen = 0;for (int i = 1; i <= rows; i++) {for (int j = 1; j <= cols; j++) {if (city[i-1][j-1] == 1){dp[i][j] = Math.min(Math.min(dp[i][j - 1], dp[i - 1][j]), dp[i - 1][j - 1]) + 1;maxsqlen = Math.max(maxsqlen, dp[i][j]);}}}