LeetCode 面试经典150题 [36/150 矩阵置零]


avatar
GuoYulong 2024-06-25 125

题目描述

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

输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

示例 2:

输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

个人C++解答

class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        unordered_map<int, int> iMap;
        unordered_map<int, int> jMap;
        for (int i = 0; i < matrix.size(); i++) {
            for (int j = 0; j < matrix[0].size(); j++) {
                if (matrix[i][j] == 0) {
                    iMap[i]++;
                    jMap[j]++;
                }
            }
        }
        for (int i = 0; i < matrix.size(); i++) {
            for (int j = 0; j < matrix[0].size(); j++) {
                if (iMap.find(i) != iMap.end()) {
                    matrix[i][j] = 0;
                } else if (jMap.find(j) != jMap.end()) {
                    matrix[i][j] = 0;
                }
            }
        }
    }
};

相关阅读

注意!!!

站点域名更新!!!部分文章图片等由于域名问题无法显示!!!

通知!!!

站点域名更新!!!部分文章图片等由于域名问题无法显示!!!