首页 > 代码库 > Leetcode:Set Matrix Zeroes
Leetcode:Set Matrix Zeroes
戳我去解题
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
这题还是很简单的,就是有点坑,遍历矩阵的时候,每遇到0的时候,我们不能立即将所在行和列置0,否则,到最后矩阵所有值都为0了,
而应该将所在的行和列号存储起来,最后遍历完矩阵之后,再根据所存储的行列号来置0
class Solution { public: void setZeroes(vector<vector<int> > &matrix) { int row = matrix.size(); int col = matrix.at(0).size(); set<int> rowZeros; set<int> colZeros; for (int i = 0; i < row; ++i) { for (int j = 0; j < col; ++j) { if (matrix.at(i).at(j) == 0) { rowZeros.insert(i); colZeros.insert(j); } } } for (auto iter = rowZeros.begin(); iter != rowZeros.end(); ++iter) { fill(matrix.at(*iter).begin(), matrix.at(*iter).end(), 0); } for (auto iter = colZeros.begin(); iter != colZeros.end(); ++iter) { for (int j = 0; j < row; ++j) { matrix.at(j).at(*iter) = 0; } } } };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。