|
1 | 1 | #include <stdio.h>
|
2 | 2 | #include <stdlib.h>
|
3 | 3 |
|
4 |
| -static void setZeroes(int** matrix, int matrixRowSize, int matrixColSize) |
| 4 | + |
| 5 | +void setZeroes(int** matrix, int matrixSize, int* matrixColSize) |
5 | 6 | {
|
6 |
| - int row, col, bRow = 0, bCol = 0; |
7 |
| - for (row = 0; row < matrixRowSize; row++) { |
8 |
| - for (col = 0; col < matrixColSize; col++) { |
| 7 | + int row, col; |
| 8 | + bool bRow = false, bCol = false; |
| 9 | + for (row = 0; row < matrixSize; row++) { |
| 10 | + for (col = 0; col < matrixColSize[row]; col++) { |
9 | 11 | if (matrix[row][col] == 0) {
|
10 |
| - if (row == 0) bCol = 1; |
11 |
| - if (col == 0) bRow = 1; |
| 12 | + if (row == 0) bRow = true; |
| 13 | + if (col == 0) bCol = true; |
12 | 14 | matrix[0][col] = matrix[row][0] = 0;
|
13 | 15 | }
|
14 | 16 | }
|
15 | 17 | }
|
16 | 18 |
|
17 |
| - for (row = 1; row < matrixRowSize; row++) { |
18 |
| - for(col = 1; col < matrixColSize; col++){ |
| 19 | + for (row = 1; row < matrixSize; row++) { |
| 20 | + for(col = 1; col < matrixColSize[row]; col++){ |
19 | 21 | if (matrix[0][col] == 0 || matrix[row][0] == 0) {
|
20 | 22 | matrix[row][col] = 0;
|
21 | 23 | }
|
22 | 24 | }
|
23 | 25 | }
|
24 | 26 |
|
25 | 27 | if (bRow) {
|
26 |
| - for(row = 0; row < matrixRowSize; row++) { |
27 |
| - matrix[row][0] = 0; |
28 |
| - } |
| 28 | + memset(matrix[0], 0, matrixColSize[0] * sizeof(int)); |
29 | 29 | }
|
30 | 30 |
|
31 | 31 | if (bCol) {
|
32 |
| - for (col = 0; col <matrixColSize; col++) { |
33 |
| - matrix[0][col] = 0; |
| 32 | + for (row = 0; row < matrixSize; row++) { |
| 33 | + matrix[row][0] = 0; |
34 | 34 | }
|
35 | 35 | }
|
36 | 36 | }
|
|
0 commit comments