From 3862c43bae6d9ecf01c72ace0ff8edf2d76b3e4a Mon Sep 17 00:00:00 2001 From: iam-abhishek-yadav Date: Sun, 26 Nov 2023 11:48:15 +0530 Subject: [PATCH 1/2] feat: add ts solution to lc problem: No.1727 --- .../README.md | 38 +++++++++++++++++++ .../README_EN.md | 38 +++++++++++++++++++ .../Solution.ts | 33 ++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 solution/1700-1799/1727.Largest Submatrix With Rearrangements/Solution.ts diff --git a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README.md b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README.md index 4e411ec529ce8..aacd1154d4211 100644 --- a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README.md +++ b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README.md @@ -173,6 +173,44 @@ func largestSubmatrix(matrix [][]int) int { } ``` +### **TypeScript** + +```ts +function largestSubmatrix(matrix: number[][]): number { + for (let column = 0; column < matrix[0].length; column++) { + for (let row = 0; row < matrix.length; row++) { + let tempRow = row; + let count = 0; + + while (tempRow < matrix.length && matrix[tempRow][column] === 1) { + count++; + tempRow++; + } + + while (count !== 0) { + matrix[row][column] = count; + count--; + row++; + } + } + } + + for (let row = 0; row < matrix.length; row++) { + matrix[row].sort((a, b) => a - b); + } + + let maxSubmatrixArea = 0; + + for (let row = 0; row < matrix.length; row++) { + for (let col = matrix[row].length - 1; col >= 0; col--) { + maxSubmatrixArea = Math.max(maxSubmatrixArea, matrix[row][col] * (matrix[row].length - col)); + } + } + + return maxSubmatrixArea; +} +``` + ### **...** ``` diff --git a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README_EN.md b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README_EN.md index 366617af65dd0..c3920e108ba30 100644 --- a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README_EN.md +++ b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README_EN.md @@ -141,6 +141,44 @@ func largestSubmatrix(matrix [][]int) int { } ``` +### **TypeScript** + +```ts +function largestSubmatrix(matrix: number[][]): number { + for (let column = 0; column < matrix[0].length; column++) { + for (let row = 0; row < matrix.length; row++) { + let tempRow = row; + let count = 0; + + while (tempRow < matrix.length && matrix[tempRow][column] === 1) { + count++; + tempRow++; + } + + while (count !== 0) { + matrix[row][column] = count; + count--; + row++; + } + } + } + + for (let row = 0; row < matrix.length; row++) { + matrix[row].sort((a, b) => a - b); + } + + let maxSubmatrixArea = 0; + + for (let row = 0; row < matrix.length; row++) { + for (let col = matrix[row].length - 1; col >= 0; col--) { + maxSubmatrixArea = Math.max(maxSubmatrixArea, matrix[row][col] * (matrix[row].length - col)); + } + } + + return maxSubmatrixArea; +} +``` + ### **...** ``` diff --git a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/Solution.ts b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/Solution.ts new file mode 100644 index 0000000000000..1e2f93188e3af --- /dev/null +++ b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/Solution.ts @@ -0,0 +1,33 @@ +function largestSubmatrix(matrix: number[][]): number { + for (let column = 0; column < matrix[0].length; column++) { + for (let row = 0; row < matrix.length; row++) { + let tempRow = row; + let count = 0; + + while (tempRow < matrix.length && matrix[tempRow][column] === 1) { + count++; + tempRow++; + } + + while (count !== 0) { + matrix[row][column] = count; + count--; + row++; + } + } + } + + for (let row = 0; row < matrix.length; row++) { + matrix[row].sort((a, b) => a - b); + } + + let maxSubmatrixArea = 0; + + for (let row = 0; row < matrix.length; row++) { + for (let col = matrix[row].length - 1; col >= 0; col--) { + maxSubmatrixArea = Math.max(maxSubmatrixArea, matrix[row][col] * (matrix[row].length - col)); + } + } + + return maxSubmatrixArea; +} From 33ccd65ace68964e2f274b9ee02a35b7c5af220c Mon Sep 17 00:00:00 2001 From: iam-abhishek-yadav Date: Sun, 26 Nov 2023 06:22:16 +0000 Subject: [PATCH 2/2] style: format code and docs with prettier --- .../README.md | 9 ++- .../README_EN.md | 9 ++- .../Solution.ts | 69 ++++++++++--------- 3 files changed, 48 insertions(+), 39 deletions(-) diff --git a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README.md b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README.md index aacd1154d4211..ce3d614685df2 100644 --- a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README.md +++ b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README.md @@ -181,12 +181,12 @@ function largestSubmatrix(matrix: number[][]): number { for (let row = 0; row < matrix.length; row++) { let tempRow = row; let count = 0; - + while (tempRow < matrix.length && matrix[tempRow][column] === 1) { count++; tempRow++; } - + while (count !== 0) { matrix[row][column] = count; count--; @@ -203,7 +203,10 @@ function largestSubmatrix(matrix: number[][]): number { for (let row = 0; row < matrix.length; row++) { for (let col = matrix[row].length - 1; col >= 0; col--) { - maxSubmatrixArea = Math.max(maxSubmatrixArea, matrix[row][col] * (matrix[row].length - col)); + maxSubmatrixArea = Math.max( + maxSubmatrixArea, + matrix[row][col] * (matrix[row].length - col), + ); } } diff --git a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README_EN.md b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README_EN.md index c3920e108ba30..0f6883e97199a 100644 --- a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README_EN.md +++ b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/README_EN.md @@ -149,12 +149,12 @@ function largestSubmatrix(matrix: number[][]): number { for (let row = 0; row < matrix.length; row++) { let tempRow = row; let count = 0; - + while (tempRow < matrix.length && matrix[tempRow][column] === 1) { count++; tempRow++; } - + while (count !== 0) { matrix[row][column] = count; count--; @@ -171,7 +171,10 @@ function largestSubmatrix(matrix: number[][]): number { for (let row = 0; row < matrix.length; row++) { for (let col = matrix[row].length - 1; col >= 0; col--) { - maxSubmatrixArea = Math.max(maxSubmatrixArea, matrix[row][col] * (matrix[row].length - col)); + maxSubmatrixArea = Math.max( + maxSubmatrixArea, + matrix[row][col] * (matrix[row].length - col), + ); } } diff --git a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/Solution.ts b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/Solution.ts index 1e2f93188e3af..6f351675d0974 100644 --- a/solution/1700-1799/1727.Largest Submatrix With Rearrangements/Solution.ts +++ b/solution/1700-1799/1727.Largest Submatrix With Rearrangements/Solution.ts @@ -1,33 +1,36 @@ -function largestSubmatrix(matrix: number[][]): number { - for (let column = 0; column < matrix[0].length; column++) { - for (let row = 0; row < matrix.length; row++) { - let tempRow = row; - let count = 0; - - while (tempRow < matrix.length && matrix[tempRow][column] === 1) { - count++; - tempRow++; - } - - while (count !== 0) { - matrix[row][column] = count; - count--; - row++; - } - } - } - - for (let row = 0; row < matrix.length; row++) { - matrix[row].sort((a, b) => a - b); - } - - let maxSubmatrixArea = 0; - - for (let row = 0; row < matrix.length; row++) { - for (let col = matrix[row].length - 1; col >= 0; col--) { - maxSubmatrixArea = Math.max(maxSubmatrixArea, matrix[row][col] * (matrix[row].length - col)); - } - } - - return maxSubmatrixArea; -} +function largestSubmatrix(matrix: number[][]): number { + for (let column = 0; column < matrix[0].length; column++) { + for (let row = 0; row < matrix.length; row++) { + let tempRow = row; + let count = 0; + + while (tempRow < matrix.length && matrix[tempRow][column] === 1) { + count++; + tempRow++; + } + + while (count !== 0) { + matrix[row][column] = count; + count--; + row++; + } + } + } + + for (let row = 0; row < matrix.length; row++) { + matrix[row].sort((a, b) => a - b); + } + + let maxSubmatrixArea = 0; + + for (let row = 0; row < matrix.length; row++) { + for (let col = matrix[row].length - 1; col >= 0; col--) { + maxSubmatrixArea = Math.max( + maxSubmatrixArea, + matrix[row][col] * (matrix[row].length - col), + ); + } + } + + return maxSubmatrixArea; +}