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

18.矩阵置零(原地算法)

var setZeroes = function (matrix) {const rows = matrix.length;const cols = matrix[0].length;// 标记第一行和第一列是否本身包含0(用于最后处理首行首列)let firstRowHasZero = false;let firstColHasZero = false;// 第一步:检查第一行是否有0for (let j = 0; j < cols; j++) {if (matrix[0][j] === 0) {firstRowHasZero = true;break;}}// 第二步:检查第一列是否有0for (let i = 0; i < rows; i++) {if (matrix[i][0] === 0) {firstColHasZero = true;break;}}// 第三步:用第一行和第一列标记其他行和列是否需要置零for (let i = 1; i < rows; i++) { // 从第1行开始(跳过首行)for (let j = 1; j < cols; j++) { // 从第1列开始(跳过首列)if (matrix[i][j] === 0) {// 用首行对应列标记该列需要置零matrix[0][j] = 0;// 用首列对应行标记该行列需要置零matrix[i][0] = 0;}}}// 第四步:根据首行首列的标记,将其他行和列置零for (let i = 1; i < rows; i++) {for (let j = 1; j < cols; j++) {// 如果当前行的首列是0,或当前列的首行是0,则置零if (matrix[i][0] === 0 || matrix[0][j] === 0) {matrix[i][j] = 0;}}}// 第五步:处理第一行(如果本身有0,整行置零)if (firstRowHasZero) {for (let j = 0; j < cols; j++) {matrix[0][j] = 0;}}// 第六步:处理第一列(如果本身有0,整列置零)if (firstColHasZero) {for (let i = 0; i < rows; i++) {matrix[i][0] = 0;}}
};

解题思路

将第一行和第一列拿出来做标记,然后遍历剩余的矩阵,如果该行或该列的第一个标记为0,就把该值赋值为0,空间复杂度为O(1)

详细解法

1.检查第一行和第一列是否有0

2.用第一行和第一列标记其他行和列是否需要置零,如果该元素为0,就标记该行和该列第一个元素为0

3.根据首行首列为0的元素将其他元素也变为0

4.处理首行和首列,如果原本就有0,将整行或整列变为0

http://www.dtcms.com/a/537118.html

相关文章:

  • Lambda表达式的使用
  • Pinterest Data Scientist 面试经验分享|数据分析 + 实验设计 + 产品洞察并重
  • 重庆璧山网站建设营销型网站的建设流程
  • 做网站用什么软件ps字体文化公司网页设计
  • 【Linux网络】实现简单的英译汉网络字典
  • 管理信息系统与网站建设有什么区别wordpress 网页模块错位
  • ansible实战-不同的用户登录不同的主机
  • 电子电气架构 ---汽车产业数字化发展背景
  • 开源Wiki系统基础知识点及避坑要点
  • 做logo专用的网站是哪个可以上传图片的公司网站
  • 网站建设企业网站制作品牌网站怎么做seo
  • K8s学习笔记(二十二) 网络组件 Flannel与Calico
  • HBM = High Bandwidth Memory(高带宽显存)
  • kali安装nessus
  • Kuboard部署服务
  • 如何做网站调研如何用ps做网站效果图
  • 网站建设与管理专业好找工作吗做网站有一个火箭回顶部
  • grafana dashboard 监控 json 文件 uid 长度限制
  • 【向量检索与RAG全流程解析】HNSW原理、实践及阿里云灵积DashScope嵌入
  • 个人备案怎么做旅游网站wordpress模板下载
  • (107页PPT)企业数字化转型规划设计(附下载方式)
  • 空间数据采集与管理
  • leetcode 268. 丢失的数字 python
  • 使用Python实现播放“.gif”文件增强版
  • 论述网站建设的具体步骤有哪些网站管理与建设教程
  • OpenAI首款AI浏览器Atlas上线仅一周即被恶意提示词攻破
  • Dompdf库html生成pdf时editor编辑器中文本长度被截断不会自动换行问题处理
  • 广西网站建设价格低qq炫舞做字网站
  • VMD分解+核主成分降维+物理信息神经网络!VMD-KPCA-PINN多变量时序光伏功率预测,MATLAB代码
  • 利用论坛推广网站工程公司税率是多少