Skip to content

Commit cf88375

Browse files
committed
feat: add typescript solution to lc problem: No.0073.Set Matrix Zeroes
1 parent 43bb7e9 commit cf88375

File tree

3 files changed

+154
-0
lines changed

3 files changed

+154
-0
lines changed

solution/0000-0099/0073.Set Matrix Zeroes/README.md

+53
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,59 @@ class Solution {
197197
}
198198
```
199199

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+
200253
### **C++**
201254

202255
```cpp

solution/0000-0099/0073.Set Matrix Zeroes/README_EN.md

+53
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,59 @@ class Solution {
174174
}
175175
```
176176

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+
177230
### **C++**
178231

179232
```cpp
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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+
};

0 commit comments

Comments
 (0)