From 1e3c181804f1690f56daf64f82cc42b5eb954250 Mon Sep 17 00:00:00 2001 From: Kavya Sharma <86572886+kav1239@users.noreply.github.com> Date: Sat, 22 Oct 2022 15:37:36 +0530 Subject: [PATCH 1/2] added Maximal_square.js file --- Maximal_square.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Maximal_square.js diff --git a/Maximal_square.js b/Maximal_square.js new file mode 100644 index 0000000..ee9a897 --- /dev/null +++ b/Maximal_square.js @@ -0,0 +1,53 @@ +/* +Maximal Area of Square + +Given an m x n binary matrix filled with 0's and 1's, find the largest square containing only 1's and return its area. + +Example 1 Input: matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]] +Output: 4 + + +Example 2 Input: matrix = [["0","1"],["1","0"]] +Output: 1 + + +Example 3 Input: matrix = [["0"]] +Output: 0 + + +*/ + +/** + * @param {character[][]} matrix + * @return {number} + */ +var maximalSquare = function(matrix) { + var m = matrix.length; + var n = (matrix[0] || []).length; + var dp = Array(m).fill(0).map(_ => Array(n)); + var max = 0; + + for (var k = 0; k < m; k++) { + dp[k][0] = matrix[k][0] === '1' ? 1 : 0; + max = Math.max(max, dp[k][0]); + } + + for (var p = 0; p < n; p++) { + dp[0][p] = matrix[0][p] === '1' ? 1 : 0; + max = Math.max(max, dp[0][p]); + } + + for (var i = 1; i < m; i++) { + for (var j = 1; j < n; j++) { + if (matrix[i][j] === '1') { + dp[i][j] = Math.min(dp[i - 1][j - 1], dp[i - 1][j], dp[i][j - 1]) + 1; + max = Math.max(max, dp[i][j]); + } else { + dp[i][j] = 0; + } + } + } + + return max * max; + +}; From 8692f902b4187da774298a0fa2e949c2717ac440 Mon Sep 17 00:00:00 2001 From: Ignacio Chiazzo Cardarello Date: Sat, 22 Oct 2022 11:17:14 -0400 Subject: [PATCH 2/2] Apply suggestions from code review --- Maximal_square.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Maximal_square.js b/Maximal_square.js index ee9a897..0cb14e8 100644 --- a/Maximal_square.js +++ b/Maximal_square.js @@ -1,4 +1,5 @@ /* +https://leetcode.com/problems/maximal-square Maximal Area of Square Given an m x n binary matrix filled with 0's and 1's, find the largest square containing only 1's and return its area. @@ -22,7 +23,7 @@ Output: 0 * @return {number} */ var maximalSquare = function(matrix) { - var m = matrix.length; + var m = matrix.length; var n = (matrix[0] || []).length; var dp = Array(m).fill(0).map(_ => Array(n)); var max = 0;