|
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