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;
              }
           }
        }
    }
相关推荐
地平线开发者15 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮16 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者16 小时前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考16 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx20 小时前
CART决策树基本原理
算法·机器学习
Wect20 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱21 小时前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
肆忆_1 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星1 天前
虚函数表:C++ 多态背后的那个男人
c++
Gorway1 天前
解析残差网络 (ResNet)
算法