Skip to content

Commit fa4cfdd

Browse files
Add c++ implementation
Signed-off-by: begeekmyfriend <[email protected]>
1 parent 0b9d5d8 commit fa4cfdd

File tree

2 files changed

+51
-13
lines changed

2 files changed

+51
-13
lines changed

0073_set_matrix_zeroes/set_zero.c

+13-13
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
#include <stdio.h>
22
#include <stdlib.h>
33

4-
static void setZeroes(int** matrix, int matrixRowSize, int matrixColSize)
4+
5+
void setZeroes(int** matrix, int matrixSize, int* matrixColSize)
56
{
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++) {
911
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;
1214
matrix[0][col] = matrix[row][0] = 0;
1315
}
1416
}
1517
}
1618

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++){
1921
if (matrix[0][col] == 0 || matrix[row][0] == 0) {
2022
matrix[row][col] = 0;
2123
}
2224
}
2325
}
2426

2527
if (bRow) {
26-
for(row = 0; row < matrixRowSize; row++) {
27-
matrix[row][0] = 0;
28-
}
28+
memset(matrix[0], 0, matrixColSize[0] * sizeof(int));
2929
}
3030

3131
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;
3434
}
3535
}
3636
}

0073_set_matrix_zeroes/set_zero.cc

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
public:
6+
void setZeroes(vector<vector<int>>& matrix) {
7+
bool bRow = false, bCol = false;
8+
for (int row = 0; row < matrix.size(); row++) {
9+
for (int col = 0; col < matrix[row].size(); col++) {
10+
if (matrix[row][col] == 0) {
11+
if (row == 0) { bRow = true; }
12+
if (col == 0) { bCol = true; }
13+
matrix[0][col] = matrix[row][0] = 0;
14+
}
15+
}
16+
}
17+
18+
for (int row = 1; row < matrix.size(); row++) {
19+
for (int col = 1; col < matrix[row].size(); col++) {
20+
if (matrix[0][col] == 0 || matrix[row][0] == 0) {
21+
matrix[row][col] = 0;
22+
}
23+
}
24+
}
25+
26+
if (bRow) {
27+
for (auto& m : matrix[0]) {
28+
m = 0;
29+
}
30+
}
31+
32+
if (bCol) {
33+
for (int row = 0; row < matrix.size(); row++) {
34+
matrix[row][0] = 0;
35+
}
36+
}
37+
}
38+
};

0 commit comments

Comments
 (0)