Skip to content

Commit 9f4fad2

Browse files
feat: add ts solution to lc problem: No.1727 (#2019)
1 parent 0f1941e commit 9f4fad2

File tree

3 files changed

+118
-0
lines changed

3 files changed

+118
-0
lines changed

solution/1700-1799/1727.Largest Submatrix With Rearrangements/README.md

+41
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,47 @@ func largestSubmatrix(matrix [][]int) int {
173173
}
174174
```
175175

176+
### **TypeScript**
177+
178+
```ts
179+
function largestSubmatrix(matrix: number[][]): number {
180+
for (let column = 0; column < matrix[0].length; column++) {
181+
for (let row = 0; row < matrix.length; row++) {
182+
let tempRow = row;
183+
let count = 0;
184+
185+
while (tempRow < matrix.length && matrix[tempRow][column] === 1) {
186+
count++;
187+
tempRow++;
188+
}
189+
190+
while (count !== 0) {
191+
matrix[row][column] = count;
192+
count--;
193+
row++;
194+
}
195+
}
196+
}
197+
198+
for (let row = 0; row < matrix.length; row++) {
199+
matrix[row].sort((a, b) => a - b);
200+
}
201+
202+
let maxSubmatrixArea = 0;
203+
204+
for (let row = 0; row < matrix.length; row++) {
205+
for (let col = matrix[row].length - 1; col >= 0; col--) {
206+
maxSubmatrixArea = Math.max(
207+
maxSubmatrixArea,
208+
matrix[row][col] * (matrix[row].length - col),
209+
);
210+
}
211+
}
212+
213+
return maxSubmatrixArea;
214+
}
215+
```
216+
176217
### **...**
177218

178219
```

solution/1700-1799/1727.Largest Submatrix With Rearrangements/README_EN.md

+41
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,47 @@ func largestSubmatrix(matrix [][]int) int {
141141
}
142142
```
143143

144+
### **TypeScript**
145+
146+
```ts
147+
function largestSubmatrix(matrix: number[][]): number {
148+
for (let column = 0; column < matrix[0].length; column++) {
149+
for (let row = 0; row < matrix.length; row++) {
150+
let tempRow = row;
151+
let count = 0;
152+
153+
while (tempRow < matrix.length && matrix[tempRow][column] === 1) {
154+
count++;
155+
tempRow++;
156+
}
157+
158+
while (count !== 0) {
159+
matrix[row][column] = count;
160+
count--;
161+
row++;
162+
}
163+
}
164+
}
165+
166+
for (let row = 0; row < matrix.length; row++) {
167+
matrix[row].sort((a, b) => a - b);
168+
}
169+
170+
let maxSubmatrixArea = 0;
171+
172+
for (let row = 0; row < matrix.length; row++) {
173+
for (let col = matrix[row].length - 1; col >= 0; col--) {
174+
maxSubmatrixArea = Math.max(
175+
maxSubmatrixArea,
176+
matrix[row][col] * (matrix[row].length - col),
177+
);
178+
}
179+
}
180+
181+
return maxSubmatrixArea;
182+
}
183+
```
184+
144185
### **...**
145186

146187
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
function largestSubmatrix(matrix: number[][]): number {
2+
for (let column = 0; column < matrix[0].length; column++) {
3+
for (let row = 0; row < matrix.length; row++) {
4+
let tempRow = row;
5+
let count = 0;
6+
7+
while (tempRow < matrix.length && matrix[tempRow][column] === 1) {
8+
count++;
9+
tempRow++;
10+
}
11+
12+
while (count !== 0) {
13+
matrix[row][column] = count;
14+
count--;
15+
row++;
16+
}
17+
}
18+
}
19+
20+
for (let row = 0; row < matrix.length; row++) {
21+
matrix[row].sort((a, b) => a - b);
22+
}
23+
24+
let maxSubmatrixArea = 0;
25+
26+
for (let row = 0; row < matrix.length; row++) {
27+
for (let col = matrix[row].length - 1; col >= 0; col--) {
28+
maxSubmatrixArea = Math.max(
29+
maxSubmatrixArea,
30+
matrix[row][col] * (matrix[row].length - col),
31+
);
32+
}
33+
}
34+
35+
return maxSubmatrixArea;
36+
}

0 commit comments

Comments
 (0)