Leetcode—73.矩阵置零【中等】

2023每日刷题(六十六)

Leetcode—73.矩阵置零

在这里插入图片描述

空间复杂度为O(m+n)版实现代码

class Solution {
   
public:
    void setZeroes(vector<vector<int>>& matrix) {
   
        int rowLen = matrix.size();
        int colLen = matrix[0].size();
        vector<int> row(rowLen, 0);
        vector<int> col(colLen, 0);
        for(int i = 0; i < rowLen; i++) {
   
            for(int j = 0; j < colLen; j++) {
   
                if(matrix[i][j] == 0) {
   
                    row[i] = 1;
                    col[j] = 1;
                }
            }
        }
        for(int i = 0; i < rowLen; i++) {
   
            for(int j = 0; j < colLen; j++) {
   
                if(row[i] || col[j]) {
   
                    matrix[i][j] = 0;
                }
            }
        }
    }
};

运行结果

在这里插入图片描述

优化空间复杂度为O(1)版算法思想

在这里插入图片描述

优化版实现代码

class Solution {
   
public:
    void setZeroes(vector<vector<int>>& matrix) {
   
        bool rowFlag = false, colFlag = false;
        int rowLen = matrix.size();
        int colLen = matrix[0].size();
        for(int i = 0; i < rowLen; i++) {
   
            if(!matrix[i][0]) {
   
                colFlag = true;
            }
        }

        for(int j = 0; j < colLen; j++) {
   
            if(!matrix[0][j]) {
   
                rowFlag = true;
            }
        }

        for(int i = 1; i < rowLen; i++) {
   
            for(int j = 1; j < colLen; j++) {
   
                if(!matrix[i][j]) {
   
                    matrix[i][0] = matrix[0][j] = 0;
                }
            }
        }

        for(int i = 1; i < rowLen; i++) {
   
            for(int j = 1; j < colLen; j++) {
   
                if(!matrix[i][0] || !matrix[0][j]) {
   
                    matrix[i][j] = 0;
                }
            }
        }

        if(colFlag) {
   
            for(int i = 0; i < rowLen; i++) {
   
                matrix[i][0] = 0;
            }
        }

        if(rowFlag) {
   
            for(int j = 0; j < colLen; j++) {
   
                matrix[0][j] = 0;
            }
        }
    }
};

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐

  1. 中等73. 矩阵

    2023-12-22 08:46:02       45 阅读
  2. Leetcode 73 矩阵

    2023-12-22 08:46:02       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-22 08:46:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-22 08:46:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-22 08:46:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-22 08:46:02       20 阅读

热门阅读

  1. C++ 如何对二维map进行读和写

    2023-12-22 08:46:02       29 阅读
  2. c++导入外部的依赖开源库

    2023-12-22 08:46:02       31 阅读
  3. 在 Python 中实现单例模式

    2023-12-22 08:46:02       46 阅读
  4. git如何修改提交代码时的名字和邮箱?

    2023-12-22 08:46:02       43 阅读
  5. git stash 用法总结

    2023-12-22 08:46:02       35 阅读
  6. Http 请求体和响应体中重要的字段

    2023-12-22 08:46:02       32 阅读
  7. cka从入门到放弃

    2023-12-22 08:46:02       32 阅读
  8. nodejs设置x-xss-protection解决xss问题

    2023-12-22 08:46:02       39 阅读
  9. 一键启动脚本,Karfka,RocketMQ

    2023-12-22 08:46:02       67 阅读
  10. python初试三

    2023-12-22 08:46:02       47 阅读
  11. 使用汇编和反汇编引擎写一个x86任意地址hook

    2023-12-22 08:46:02       48 阅读