#include "soln.hpp" void Solution::setZero(vector> &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> &matrix) { vector> 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{i, j}); } } } for (auto it : marks) { setZero(matrix, it.first, it.second); } } bool Solution::test(vector> &matrix, vector>& answer) { vector> mat_copy = vector>(matrix); setZeroes(mat_copy); return mat_copy == answer; }