day 13: 73-set-matrix-zeroes

This commit is contained in:
Kaushik Narayan R 2023-10-10 11:49:59 -07:00
parent 86a92dc848
commit 3af727af85
3 changed files with 70 additions and 0 deletions

View File

@ -0,0 +1,18 @@
#include "soln.hpp"
int main() {
// [[1,1,1],[1,0,1],[1,1,1]]
vector<int> v1 = vector<int>{0,1,1};
vector<int> v2 = vector<int>{1,1,1};
vector<int> v3 = vector<int>{1,1,1};
vector<int> v_1 = vector<int>{0,0,0};
vector<int> v_2 = vector<int>{0,1,1};
vector<int> v_3 = vector<int>{0,1,1};
vector<vector<int>> matrix = vector<vector<int>>{v1,v2,v3};
vector<vector<int>> answer = vector<vector<int>>{v_1,v_2,v_3};
Solution soln;
cout << "Set zeroes correctly? " << soln.test(matrix, answer) << endl;
return 0;
}

View File

@ -0,0 +1,42 @@
#include "soln.hpp"
void Solution::setZero(vector<vector<int>> &matrix, int row, int column)
{
// set row to 0s
for (int i = 0; i < matrix[0].size(); i++)
{
matrix[row][i] = 0;
}
// set column to 0s
for (int i = 0; i < matrix.size(); i++)
{
matrix[i][column] = 0;
}
}
void Solution::setZeroes(vector<vector<int>> &matrix)
{
vector<pair<int, int>> marks;
// for every row
for (int i = 0; i < matrix.size(); i++)
{
// for every column
for (int j = 0; j < matrix[0].size(); j++)
{
if (matrix[i][j] == 0)
{
marks.push_back(pair<int, int>{i, j});
}
}
}
for (auto it : marks)
{
setZero(matrix, it.first, it.second);
}
}
bool Solution::test(vector<vector<int>> &matrix, vector<vector<int>>& answer) {
vector<vector<int>> mat_copy = vector<vector<int>>(matrix);
setZeroes(mat_copy);
return mat_copy == answer;
}

View File

@ -0,0 +1,10 @@
#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
void setZero(vector<vector<int>> &matrix, int row, int column);
void setZeroes(vector<vector<int>> &matrix);
bool test(vector<vector<int>> &matrix, vector<vector<int>> &answer);
};