18.矩阵同行同列全置零

1.题目描述

2.解题思路

1)边遍历边置零(错误解法,因为边置零到后面遍历到前面置零得元素)

cpp 复制代码
 void setZeroes(vector<vector<int>>& matrix) {
        int row = matrix.size();//行数
        int col = matrix[0].size();//列数
        for(int i = 0;i<=row-1;i++){//遍历每一行
           for(int j = 0;j<=col-1;j++){//遍历该行每一个元素
              if(matrix[i][j]==0){
                for(int k = 0;k<=col-1;k++){
                    matrix[i][k]= 0;
                }
                for(int m = 0;m<=row-1;m++){
                    matrix[m][j]=0;
                }
              }
           }
        }
    }

2)先标记,再统一置零

cpp 复制代码
void setZeroes(vector<vector<int>>& matrix) {
        int row = matrix.size();//行数
        int col = matrix[0].size();//列数
        vector<int> tag_row(row,0);
        vector<int> tag_col(col,0);
        //put tag做标记
        for(int i = 0;i<=row-1;i++){//遍历每一行
           for(int j = 0;j<=col-1;j++){//遍历该行每一个元素
              if(matrix[i][j]==0){
                tag_row[i] = 1;
                tag_col[j] = 1;
              }
           }
        }
        //put zero置零
        for(int i = 0;i<=row-1;i++){//遍历每一行
           for(int j = 0;j<=col-1;j++){//遍历该行每一个元素
              if(tag_row[i]==1 || tag_col[j]==1){
                matrix[i][j]=0;
              }
           }
        }
    }
相关推荐
算法备案代理2 分钟前
大模型备案与算法备案,企业该如何选择?
人工智能·算法·大模型·算法备案
赛姐在努力.26 分钟前
【拓扑排序】-- 算法原理讲解,及实现拓扑排序,附赠热门例题
java·算法·图论
我能坚持多久1 小时前
【初阶数据结构01】——顺序表专题
数据结构
rainbow68891 小时前
EffectiveC++入门:四大习惯提升代码质量
c++
秋邱1 小时前
用 Python 写出 C++ 的性能?用CANN中PyPTO 算子开发硬核上手指南
开发语言·c++·python
我在人间贩卖青春2 小时前
C++之析构函数
c++·析构函数
野犬寒鸦2 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
霖霖总总2 小时前
[小技巧66]当自增主键耗尽:MySQL 主键溢出问题深度解析与雪花算法替代方案
mysql·算法
rainbow68892 小时前
深入解析C++STL:map与set底层奥秘
java·数据结构·算法
我在人间贩卖青春2 小时前
C++之数据类型的扩展
c++·字符串·数据类型