leetcode矩阵置零

题目:

. - 力扣(LeetCode)

代码:

cpp 复制代码
class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        bool row1 = false;
        bool column1 = false;
        int m = matrix.size();
        int n = matrix[0].size();
        //记录第一行有没有0
        for(int i = 0;i < n;i++){
            if(matrix[0][i] == 0){
                row1 = true;
                break;
            }
        }
        //记录第一列有没有0
        for(int i = 0;i < m;i++){
            if(matrix[i][0] == 0){
                column1 = true;
                break;
            }
        }
        //借用第一行第一列标记0
        for(int i = 1;i < m;i++){
            for(int j = 1;j < n;j++){
                if(matrix[i][j] == 0){
                    matrix[i][0] = matrix[0][j] = 0;
                }
            }
        }
        //正式操作
        for(int i = 1;i < m;i++){
            for(int j = 1;j < n;j++){
                if(matrix[i][0] == 0 || matrix[0][j] == 0){
                    matrix[i][j] = 0;
                }
            }
        }
        //把第一行具体操作
        if(row1){
            for(int i = 0;i < n;i++){
                matrix[0][i] = 0;
            }
        }
        //把第一列具体操作
        if(column1){
            for(int i = 0;i < m;i++){
                matrix[i][0] = 0;
            }
        }
    }
};
相关推荐
CoovallyAIHub几秒前
工业视觉检测:多模态大模型的诱惑
深度学习·算法·计算机视觉
Jayden_Ruan7 分钟前
C++分解质因数
数据结构·c++·算法
bubiyoushang88833 分钟前
MATLAB实现雷达恒虚警检测
数据结构·算法·matlab
wu_asia37 分钟前
编程技巧:如何高效输出特定倍数数列
c语言·数据结构·算法
AlenTech1 小时前
207. 课程表 - 力扣(LeetCode)
算法·leetcode·职场和发展
一碗姜汤1 小时前
【统计基础】卡尔曼滤波,矩阵对迹求导,Joseph Form,条件数
线性代数·矩阵
练习时长一年2 小时前
LeetCode热题100(杨辉三角)
算法·leetcode·职场和发展
lzllzz232 小时前
bellman_ford算法
算法
栈与堆2 小时前
LeetCode 19 - 删除链表的倒数第N个节点
java·开发语言·数据结构·python·算法·leetcode·链表
sunfove2 小时前
麦克斯韦方程组 (Maxwell‘s Equations) 的完整推导
线性代数·算法·矩阵