File tree 3 files changed +118
-0
lines changed
solution/1700-1799/1727.Largest Submatrix With Rearrangements
3 files changed +118
-0
lines changed Original file line number Diff line number Diff line change @@ -173,6 +173,47 @@ func largestSubmatrix(matrix [][]int) int {
173
173
}
174
174
```
175
175
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
+
176
217
### ** ...**
177
218
178
219
```
Original file line number Diff line number Diff line change @@ -141,6 +141,47 @@ func largestSubmatrix(matrix [][]int) int {
141
141
}
142
142
```
143
143
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
+
144
185
### ** ...**
145
186
146
187
```
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments