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

矩阵置零C++

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。

思路:
1、让首行首列记录哪一行哪一列有0
2、于是可以直接遍历非首行首列的元素,若该元素对应的首行首列为0,说明该元素最后还是需要置0
3、由于首行首列还需要记录哪一行哪一列有0,所以第1步和第2步可能会有冲突,于是加入两个bool量,标志首行首列是否有0

class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {int m = matrix.size();  // 行数if(m==0)return;int n = matrix[0].size(); // 列数bool row = false, col = false;// 先完成标记首行首列是否有0// 检查首列是否有0for(int i=0; i<m; i++){if(matrix[i][0] == 0){col = true;break;}      }// 检查首行是否有0for(int j=0; j<n; j++){if(matrix[0][j] == 0){row = true;break;}}// 完成第一步for(int i=1; i<m; i++){for(int j=1; j<n; j++){if(matrix[i][j] == 0){// 首行首列置0matrix[0][j] = 0;matrix[i][0] = 0;}}}// 完成第二步for(int i=1; i<m; i++){for(int j=1; j<n; j++){if(matrix[0][j]==0 || matrix[i][0] == 0){matrix[i][j] = 0;}}}// 处理有0的首行首列if(col){for(int i=0; i<m; i++){matrix[i][0] = 0;}}if(row){for(int j=0; j<n; j++){matrix[0][j] = 0;}}}
};
http://www.lqws.cn/news/442495.html

相关文章:

  • jmeter学习
  • ABP VNext + MongoDB 数据存储:多模型支持与 NoSQL 扩展
  • HarmonyOS开发利器:ArkTS全解析
  • 深入解析connect函数:阻塞与非阻塞模式下的行为差异
  • 利用DevEco Studio对RK3588的HiHopesOS-4.1.110(OpenHarmony)进行Qt程序编写
  • Linux基本指令篇 —— mkdir指令
  • linux 非root 非sudo 如何安装软件
  • 基于Geotools的两条道路相交并根据交点形成新路线实战-以OSM数据为例
  • 微信小程序传参过来了,但是数据没有获取到
  • 编码规则设计唯一编码
  • 基于Spring Boot+Vue的“暖寓”宿舍管理系统设计与实现(源码及文档)
  • YunParking路内停车源码追缴分成机制设计与技术实现​
  • docker使用技巧之把扩展卷命名变成有意义
  • AWS Security Hub邮件告警设置
  • 计算机网络:(四)物理层的基本概念,数据通信的基础知识,物理层下面的传输媒体
  • 系统思考:结构影响行为
  • 基于 LLM 的网络钓鱼网站检测多代理框架
  • WEB安全--WAF的绕过思路
  • Singularity 安装
  • 浏览器标题闪烁功能
  • python形成性考核管理系统
  • 2023年蓝桥杯青少第十四届蓝桥杯Scratch省赛中级组真题——小狗避障
  • webpack和vite对比解析(AI)
  • OpenCV 图像直方图
  • 中泰制造企业组网新方案:中-泰企业国际组网专线破解泰国工厂访问国内 OA/ERP 卡顿难题
  • 【世纪龙科技】智能网联汽车自动驾驶虚拟实训软件
  • 【鸿蒙HarmonyOS Next App实战开发】​​​​ArkUI纯色图生成器
  • Linux中Ansible常用模块
  • 【油藏地球物理正演软件ColchisFM】为什么经常用90度相移处理代替反演使用
  • PostgreSQL的扩展dict_int