日野弥生:勉強しよう
LeetCode 73 - 矩阵置零
发表于2024年12月16日
看函数的形参和返回值,说明题目要求原位对矩阵进行修改,且置零会引起坍塌效应,所以需要新增另外的空间。
- 先把有0的位置的矩阵位置i和j分别记录到m和n中;
- 根据m里的行号把符合条件的行置零;
- 根据n里的行号把符合条件的列置零。
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
std::vector<int> m{},n{};
for(int i=0;i<matrix.size();i++)
{
for(int j=0;j<matrix[i].size();j++)
{
if(matrix[i][j] == 0)
{
m.push_back(i);
n.push_back(j);
}
}
}
for(int i=0;i<m.size();i++)
std::fill(matrix[m[i]].begin(),matrix[m[i]].end(),0);
for(int j=0;j<n.size();j++)
{
for(int i=0;i<matrix.size();i++)
{
matrix[i][n[j]]=0;
}
}
}
};