当前位置: 首页 > article >正文

leetcode 73. 矩阵置零

题目如下
在这里插入图片描述

数据范围
在这里插入图片描述

如果一个点m(i,j) == 0其中i j都大于0那么按照题目要求对应的m[0][j] m[i][0]都要赋值为0.
所以我们可以令第一行和第一列作为标记是否对应的列和行需要置为0.
又因为我们没法判断第一行和第一列所以需要额外两个变量标记第一列和第二列。
这样就可以满足题目要求的O(1)空间复杂度

通过代码

class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        bool r = false, c = false;
        int n = matrix.size();
        int m = matrix[0].size();
        for (int i = 0; i < n; i++) {
            if (matrix[i][0] == 0) {
                c = true;
                break;
            }
        }
        for (int i = 0; i < m; i++) {
            if (matrix[0][i] == 0) {
                r = true;
                break;
            }
        }
        for (int i = 1; i < n; i++) {
            for (int j = 1; j < m; j++) {
                if (matrix[i][j] == 0) {
                    matrix[0][j] = 0;
                    matrix[i][0] = 0;
                }
            }
        }
        for (int i = 1; i < n; i++) {
            for (int j = 1; j < m; j++) {
                if (!matrix[i][0] || !matrix[0][j]) {
                    matrix[i][j] = 0;
                }
            }
        }
        if (r) {
            for (int i = 0; i < m; i++) {
                matrix[0][i] = 0;
            }
        }

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

在这里插入图片描述


http://www.kler.cn/a/567913.html

相关文章:

  • 【数据结构】从位图到布隆过滤器
  • 新时代,科技助力运动旅游开启新潮流
  • Android 数据库查询对比(APN案例)
  • 【Django REF】Django REF 常用知识点汇总
  • Qt 自带颜色属性
  • LVS+Keepalived 高可用集群搭建
  • 智能图像处理平台:图片管理
  • MySQL DBA技能指南
  • 低代码与开发框架的一些整合[3]
  • 从“0”开始入门PCB之(1)--PCB的结构与制作工艺
  • Halcon算子 binary_threshold、auto_threshold、dyn_threshold
  • 理解文件系统
  • Suspense 使用方法
  • 机器学习决策树
  • 【JavaEE进阶】Spring Boot 日志
  • 线程安全问题
  • PyCharm社区版如何运行Django工程?
  • 网络安全内参
  • 数据结构与算法:二叉树
  • C++ Qt OpenGL渲染FFmpeg解码后的视频