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

中国黄金建设网站站长工具推荐

中国黄金建设网站,站长工具推荐,最新国际消息,广州建工集团有限公司官网矩阵置零 题目题目描述示例 1:示例 2:提示: 题解思路分析Python 实现代码代码解释提交结果 题目 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例…

矩阵置零

  • 题目
    • 题目描述
    • 示例 1:
    • 示例 2:
    • 提示:
  • 题解
    • 思路分析
    • Python 实现代码
    • 代码解释
    • 提交结果

题目

题目描述

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

示例 1:

在这里插入图片描述

输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

示例 2:

在这里插入图片描述

输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

提示:

m == matrix.length
n == matrix[0].length
1 <= m, n <= 200
- 2 31 2^{31} 231 <= matrix[i][j] <= 2 31 2^{31} 231 - 1

题解

思路分析

为了在不使用额外空间的情况下完成这个任务,我们可以利用矩阵的第一行和第一列来记录哪些行和列需要被置零。具体步骤如下:

  1. 检查第一行和第一列是否有零:我们需要单独检查第一行和第一列中是否包含零,因为稍后我们会用它们来存储其他行和列的信息。
  2. 标记需要置零的行和列:遍历整个矩阵,当发现某个元素为零时,将该元素所在的行的第一个元素和该元素所在的列的第一个元素设置为零。
  3. 根据标记置零:再次遍历矩阵(从最后一行开始,以避免覆盖第一行和第一列中的标记),如果某一行或某一列的第一个元素为零,则将整行或整列置零。
  4. 处理第一行和第一列:最后,根据第一步的结果决定是否需要将第一行或第一列置零。

Python 实现代码

def setZeroes(matrix):m, n = len(matrix), len(matrix[0])# Step 1: Check if the first row and first column contain zerosfirst_row_has_zero = any(matrix[0][j] == 0 for j in range(n))first_col_has_zero = any(matrix[i][0] == 0 for i in range(m))# Step 2: Mark rows and columns that need to be zeroedfor i in range(1, m):for j in range(1, n):if matrix[i][j] == 0:matrix[i][0] = 0matrix[0][j] = 0# Step 3: Set matrix elements to zero based on marksfor i in range(1, m):for j in range(1, n):if matrix[i][0] == 0 or matrix[0][j] == 0:matrix[i][j] = 0# Step 4: Handle first row and columnif first_row_has_zero:for j in range(n):matrix[0][j] = 0if first_col_has_zero:for i in range(m):matrix[i][0] = 0

代码解释

  1. 检查第一行和第一列:通过 any 函数检查第一行和第一列中是否存在零,并保存结果。
  2. 标记需要置零的行和列:遍历矩阵,对于每个为零的元素,将其对应的行首和列首元素也设为零。
  3. 根据标记置零:从矩阵的最后一个元素开始向前遍历,如果某一行或某一列的标志位为零,则将该行或该列的所有元素置零。
  4. 处理第一行和第一列:最后根据第一步的检查结果决定是否需要将第一行或第一列置零。

这种方法确保了我们只使用常数级别的额外空间(O(1)),并且有效地完成了原地算法的要求。

提交结果

在这里插入图片描述

http://www.yayakq.cn/news/436875/

相关文章:

  • 如何查看一个网站做的外链济宁鱼台网站建设
  • 网站建设与管理专业课程建设招标网 官方网站
  • 进口彩妆做的好的网站做网站要素
  • 安徽元鼎建设工程 网站公司变更证明模板
  • 如东做网站公司网站的域名和密码是什么意思
  • 番禺做网站系统团队建设海报网站
  • 宝塔如何搭建网站网页紧急升级
  • 珠宝玉器监测网站建设方案php网站怎么做缓存
  • 沂水网站制作阳江网站设计
  • 怎么做网站推广电话京东商城网站风格
  • 重庆企业网站推广平台国家为什么把安阳分了
  • 网站建设外包需要注意哪些网站开发推进计划表
  • 保定网站建设方案维护东莞是哪个省
  • 网站优化开发中卫网红大型蹦床设备
  • 宠物店网站开发文档撰写汉字域名注册
  • 重庆万州网站建设公司电话网站模板设计教程
  • 网站开发下载哪个在东营怎么建网站
  • 全国建设网站wordpress 什么是分类
  • 网站改版文案做设计的去哪些大厂
  • 深圳龙岗网站建设个人网站趋向
  • 长沙seo网站优化化妆品包装设计
  • 品牌网站设计制作公司地址冷门不重名的公司名称
  • 如何建立免费公司网站重庆市建设工程管理信息网
  • 网站产品关键词导出通辽市做网站公司
  • 东莞网站建设_东莞网页设计】现在做网站用什么软件
  • 优秀服装网站设计潼南网站建设
  • 国内扁平化网站欣赏wordpress插件jetpack
  • 企业网站建设专业精准一 鸣远科技wordpress七牛云使用
  • 专注新乡网站建设画册设计内容
  • 网站优化报告网站建设案例收费情况