File tree 3 files changed +154
-0
lines changed
solution/0000-0099/0073.Set Matrix Zeroes
3 files changed +154
-0
lines changed Original file line number Diff line number Diff line change @@ -197,6 +197,59 @@ class Solution {
197
197
}
198
198
```
199
199
200
+ ### ** TypeScript**
201
+
202
+ ``` ts
203
+ /**
204
+ Do not return anything, modify matrix in-place instead.
205
+ */
206
+ function setZeroes(matrix : number [][]): void {
207
+ let m = matrix .length , n = matrix [0 ].length ;
208
+ let c0 = false , r0 = false ;
209
+ // 遍历第一行
210
+ for (let i = 0 ; i < m ; i ++ ) {
211
+ if (! matrix [i ][0 ] && ! c0 ) {
212
+ c0 = true ;
213
+ }
214
+ }
215
+ // 第一列
216
+ for (let j = 0 ; j < n ; j ++ ) {
217
+ if (! matrix [0 ][j ] && ! r0 ) {
218
+ r0 = true ;
219
+ }
220
+ }
221
+ // 用第一行、第一列标记全部
222
+ for (let i = 1 ; i < m ; i ++ ) {
223
+ for (let j = 1 ; j < n ; j ++ ) {
224
+ if (! matrix [i ][j ]) {
225
+ matrix [i ][0 ] = 0 ;
226
+ matrix [0 ][j ] = 0 ;
227
+ }
228
+ }
229
+ }
230
+ // set
231
+ for (let i = 1 ; i < m ; i ++ ) {
232
+ for (let j = 1 ; j < n ; j ++ ) {
233
+ if (! matrix [i ][0 ] || ! matrix [0 ][j ]) {
234
+ matrix [i ][j ] = 0 ;
235
+ }
236
+ }
237
+ }
238
+ // set 第一列
239
+ if (c0 ) {
240
+ for (let i = 0 ; i < m ; i ++ ) {
241
+ matrix [i ][0 ] = 0 ;
242
+ }
243
+ }
244
+ // 第一行
245
+ if (r0 ) {
246
+ for (let j = 0 ; j < n ; j ++ ) {
247
+ matrix [0 ][j ] = 0 ;
248
+ }
249
+ }
250
+ };
251
+ ```
252
+
200
253
### ** C++**
201
254
202
255
``` cpp
Original file line number Diff line number Diff line change @@ -174,6 +174,59 @@ class Solution {
174
174
}
175
175
```
176
176
177
+ ### ** TypeScript**
178
+
179
+ ``` ts
180
+ /**
181
+ Do not return anything, modify matrix in-place instead.
182
+ */
183
+ function setZeroes(matrix : number [][]): void {
184
+ let m = matrix .length , n = matrix [0 ].length ;
185
+ let c0 = false , r0 = false ;
186
+ // 遍历第一行
187
+ for (let i = 0 ; i < m ; i ++ ) {
188
+ if (! matrix [i ][0 ] && ! c0 ) {
189
+ c0 = true ;
190
+ }
191
+ }
192
+ // 第一列
193
+ for (let j = 0 ; j < n ; j ++ ) {
194
+ if (! matrix [0 ][j ] && ! r0 ) {
195
+ r0 = true ;
196
+ }
197
+ }
198
+ // 用第一行、第一列标记全部
199
+ for (let i = 1 ; i < m ; i ++ ) {
200
+ for (let j = 1 ; j < n ; j ++ ) {
201
+ if (! matrix [i ][j ]) {
202
+ matrix [i ][0 ] = 0 ;
203
+ matrix [0 ][j ] = 0 ;
204
+ }
205
+ }
206
+ }
207
+ // set
208
+ for (let i = 1 ; i < m ; i ++ ) {
209
+ for (let j = 1 ; j < n ; j ++ ) {
210
+ if (! matrix [i ][0 ] || ! matrix [0 ][j ]) {
211
+ matrix [i ][j ] = 0 ;
212
+ }
213
+ }
214
+ }
215
+ // set 第一列
216
+ if (c0 ) {
217
+ for (let i = 0 ; i < m ; i ++ ) {
218
+ matrix [i ][0 ] = 0 ;
219
+ }
220
+ }
221
+ // 第一行
222
+ if (r0 ) {
223
+ for (let j = 0 ; j < n ; j ++ ) {
224
+ matrix [0 ][j ] = 0 ;
225
+ }
226
+ }
227
+ };
228
+ ```
229
+
177
230
### ** C++**
178
231
179
232
``` cpp
Original file line number Diff line number Diff line change
1
+ /**
2
+ Do not return anything, modify matrix in-place instead.
3
+ */
4
+ function setZeroes ( matrix : number [ ] [ ] ) : void {
5
+ let m = matrix . length , n = matrix [ 0 ] . length ;
6
+ let c0 = false , r0 = false ;
7
+ // 遍历第一行
8
+ for ( let i = 0 ; i < m ; i ++ ) {
9
+ if ( ! matrix [ i ] [ 0 ] && ! c0 ) {
10
+ c0 = true ;
11
+ }
12
+ }
13
+ // 第一列
14
+ for ( let j = 0 ; j < n ; j ++ ) {
15
+ if ( ! matrix [ 0 ] [ j ] && ! r0 ) {
16
+ r0 = true ;
17
+ }
18
+ }
19
+ // 用第一行、第一列标记全部
20
+ for ( let i = 1 ; i < m ; i ++ ) {
21
+ for ( let j = 1 ; j < n ; j ++ ) {
22
+ if ( ! matrix [ i ] [ j ] ) {
23
+ matrix [ i ] [ 0 ] = 0 ;
24
+ matrix [ 0 ] [ j ] = 0 ;
25
+ }
26
+ }
27
+ }
28
+ // set
29
+ for ( let i = 1 ; i < m ; i ++ ) {
30
+ for ( let j = 1 ; j < n ; j ++ ) {
31
+ if ( ! matrix [ i ] [ 0 ] || ! matrix [ 0 ] [ j ] ) {
32
+ matrix [ i ] [ j ] = 0 ;
33
+ }
34
+ }
35
+ }
36
+ // set 第一列
37
+ if ( c0 ) {
38
+ for ( let i = 0 ; i < m ; i ++ ) {
39
+ matrix [ i ] [ 0 ] = 0 ;
40
+ }
41
+ }
42
+ // 第一行
43
+ if ( r0 ) {
44
+ for ( let j = 0 ; j < n ; j ++ ) {
45
+ matrix [ 0 ] [ j ] = 0 ;
46
+ }
47
+ }
48
+ } ;
You can’t perform that action at this time.
0 commit comments