Maximal Square LeetCode solution in Java
1class Solution {2public int maximalSquare(char[][] matrix) {3int m = matrix.length;4int n = matrix[0].length;5int[][] dp = new int[m][n];67int max = 0;89for (int i = 0; i < m; i++) {10dp[i][0] = matrix[i][0] - 48;11if (matrix[i][0] == '1') max = 1;12}13for (int i = 0; i < n; i++) {14dp[0][i] = matrix[0][i] - 48;15if (matrix[0][i] == '1') max = 1;16}1718for (int i = 1; i < m; i++) {19for (int j = 1; j < n; j++) {20if (matrix[i][j] == '1') {21dp[i][j] = Math.min(dp[i - 1][j - 1], Math.min(dp[i][j - 1], dp[i - 1][j])) + 1;22if (dp[i][j] > max) {23max = dp[i][j];24}25}26}27}2829return max * max;30}31}