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

leetcode hot100刷题日记——9.矩阵置零

在这里插入图片描述
在这里插入图片描述

解答一:

class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {//O(mn)额外空间,直白思想:找个和matrix一样形状的数组做vis标记数组//如果遇到了0,那就vis[i][j]=1,表明这个数组位置已经被用过了//不会出现:如示例1中,遍历到第二行第二列0时,把第二行和第二列所有数字变成0//下一个遍历第二行第三列,已经在上一步中变成0了//你要是不做标记,那也会把第三列所有数变成0,那就错了//但是,注意示例2又提醒了我们另一种情况//当两个0在同一行时候,如果你在遍历到第二个0的时候,vis是1//那么他就会跳过这个0,不把第四列变成0了//所以在进行vis更新前,我们需要判断一下这个数是不是原本就是0//如果原本就是0的话,vis就依旧是0int m=matrix.size();int n=matrix[0].size();vector<vector<int>> vis(m,vector<int>(n));for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(matrix[i][j]==0&&vis[i][j]==0){for(int k=0;k<n;k++){if(matrix[i][k]!=0){vis[i][k]=1;}matrix[i][k]=0; }for(int k=0;k<m;k++){if(matrix[k][j]!=0){vis[k][j]=1;}matrix[k][j]=0;}}}}return;}
};

时间复杂度:O(mn)
空间复杂度:O(mn)

解答二:

class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {//O(m+n)额外空间:一个数组存行位置,一个数组存列位置int mm=matrix.size();int nn=matrix[0].size();vector<int> m(mm);vector<int> n(nn);for(int i=0;i<mm;i++){for(int j=0;j<nn;j++){//把所有是0的数的行位置和列位置记录下来if(matrix[i][j]==0){m[i]=n[j]=1;}}}for(int i=0;i<mm;i++){for(int j=0;j<nn;j++){if(m[i]!=0||n[j]!=0){//只要行有0或者列有0就直接变0matrix[i][j]=0;}}}}
};

时间复杂度:O(mn)
空间复杂度:O(m+n)

http://www.xdnf.cn/news/8065.html

相关文章:

  • PYTORCH_CUDA_ALLOC_CONF基本原理和具体示例
  • 解决leetcode第3548题.等和矩阵分割II
  • asp.net core 添加 EntityFrame
  • 并发编程之并发容器类
  • [Java恶补day3] 128. 最长连续序列
  • 【愚公系列】《Manus极简入门》054-家庭冲突调解师:“家庭和谐使者”
  • 使用 Docker 搭建 PyWPS 2.0 服务全流程详解
  • Oracle 的V$ACTIVE_SESSION_HISTORY 视图
  • XC3588H搭载国产麒麟系统可用于政务/社保一体机吗?
  • 小球弹弹弹
  • 企业级AI搜索解决方案:阿里云AI搜索开放平台
  • 《数据资产价值与收益分配评价模型》
  • 计算机操作系统(十一)调度器/调度程序,闲逛调度与调度算法的评价指标
  • 杰发科技AC7840——CSE硬件加密模块使用(1)
  • JVM——内存模型
  • Starrocks的CBO基石--统计信息的来源 StatisticAutoCollector
  • 前端vscode学习
  • VLLM在linux下部署
  • 智联物联RG3000边缘计算网关助力智慧城市建设
  • 《C 语言字符串操作从入门到实战(下篇):strncpy/strncat/strstr 等函数原理与实现》
  • 《Android 应用开发基础教程》——第十四章:Android 多线程编程与异步任务机制(Handler、AsyncTask、线程池等)
  • uni-app 排坑
  • Maven Profile中的资源过滤与属性管理
  • 华为2025年校招笔试手撕真题教程(三)
  • 优化用户体验:拦截浏览器前进后退、刷新、关闭、路由跳转等用户行为并弹窗提示
  • 西门子 S1500 博途软件舞台威亚 3D 控制方案
  • SQL:窗口函数(Window Functions)
  • 基于ITcpServer/IHttpServer框架的HTTP服务器
  • 关于大语言模型的问答?
  • 后端开发实习生-抖音生活服务