73. 矩阵置零

给定一个 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]]

提示:

  • m == matrix.length
  • n == matrix[0].length
  • 1 <= m, n <= 200
  • -231 <= matrix[i][j] <= 231 - 1

法1:标记数组

cpp 复制代码
class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        vector<bool> flagRow(matrix.size(),false);
        vector<bool> flagCol(matrix[0].size(),false);
        for(int row = 0;row<matrix.size();row++){
            for(int col = 0;col<matrix[0].size();col++){
                if(matrix[row][col]==0){
                    flagRow[row] = true;
                    flagCol[col] = true;
                }
            }
        }
        for(int row = 0;row<matrix.size();row++){
            for(int col = 0;col<matrix[0].size();col++){
                if (flagRow[row]||flagCol[col]){
                    matrix[row][col] = 0;
                }
            }
        }


    }
};
相关推荐
澡点睡觉4 分钟前
【数据结构与算法Trip第4站】摩尔投票法
算法
宁静致远20211 小时前
【C++设计模式】第五篇:装饰器模式
c++·设计模式·装饰器模式
青草地溪水旁1 小时前
Linux 高性能 I/O 事件通知机制的核心系统调用—— `epoll_ctl`
linux·c语言·c++
孙同学_1 小时前
【C++】AVL树
c++·redis
靠近彗星1 小时前
2.1线性表
数据结构
island13142 小时前
【Redis#9】其他数据结构
数据结构·数据库·redis
行走的bug...2 小时前
用图论来解决问题
算法·图论
君宝2 小时前
Linux ALSA架构:PCM_OPEN流程 (二)
java·linux·c++
island13142 小时前
【C++框架#5】Elasticsearch 安装和使用
开发语言·c++·elasticsearch
nsjqj3 小时前
数据结构:优先级队列(堆)
数据结构