73. 矩阵置零(标记法)

2022-06-12 16:31:02 浏览数 (1)

题目: 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。

思路:先设置两个数组分别标记哪一行,哪一列上有为0的元素,然后遍历矩阵,将符合条件的标记为0即可。

code

代码语言:javascript复制
class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        int m = matrix.size();
        int n = matrix[0].size();
        vector<int> row(m), col(n);
        for (int i = 0; i < m; i  ) {
            for (int j = 0; j < n; j  ) {
                if (!matrix[i][j]) {
                    row[i] = col[j] = true;
                }
            }
        }
        for (int i = 0; i < m; i  ) {
            for (int j = 0; j < n; j  ) {
                if (row[i] || col[j]) {
                    matrix[i][j] = 0;
                }
            }
        }
    }
};

0 人点赞