矩阵置零

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

示例 1:

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

示例 2:

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

进阶:

  • 一个直接的解决方案是使用  O(mn) 的额外空间,但这并不是一个好的解决方案。
  • 一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。
  • 你能想出一个常数空间的解决方案吗?

个人认为我这个思路在时间复杂度和空间复杂度上都比较可以的,有任何建议敬请批评指正

class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""i_s = []j_s = []for i,line in enumerate(matrix):has_z = Falsefor idx in range(len(line)):if line[idx] == 0:j_s.append(idx)has_z = Trueif has_z:i_s.append(i)for i in i_s:matrix[i] = [0 for i in range(len(matrix[0]))]if len(j_s):for j in j_s:for idx in range(len(matrix)):matrix[idx][j] = 0

转载于:https://www.cnblogs.com/watch-fly/p/leetcode_73_watchfly.html

leetcode 73 矩阵置零 Python相关推荐

  1. Java实现 LeetCode 73 矩阵置零

    73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ...

  2. LeetCode 73. 矩阵置零(两个标记变量)

    73. 矩阵置零 我们可以用矩阵的第一行和第一列作为两个标记数组,以达到 O(1)O(1) 的额外空间. 但这样会导致原数组的第一行和第一列被修改,无法记录它们是否原本包含 0.因此我们需要额外使用两 ...

  3. LeetCode 73矩阵置零74搜素二维矩阵75颜色分类

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

  4. leetcode 73 矩阵置零 C++ 两种解法

    leetcode 73 两种解法~~,没有一个是我想出来的,哈哈~~ one class Solution {public:void setZeroes(vector<vector<int ...

  5. leetcode 73. 矩阵置零

    给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 进阶: 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案. ...

  6. Leetcode算法Java全解答--73. 矩阵置零

    Leetcode算法Java全解答–73. 矩阵置零 文章目录 Leetcode算法Java全解答--73. 矩阵置零 题目 想法 结果 总结 代码 我的答案 大佬们的答案 测试用例 其他 题目 给定 ...

  7. 矩阵置零Python解法

    给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 例: 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]] 输出 ...

  8. leetcode(js)-每日一练之 矩阵置零 题库编号 73

    leetcode(js)-每日一练之 矩阵置零 1.检查并标记第一行和第一列是否有0 (firstColHasZero和firstRowHasZero) 2.忽略第一行第一列,若其余行列含有0,将其所 ...

  9. C++矩阵置零---原地算法(附三种解法)

    如题只要发现一个元素为0,那么它所在的行和列都要置零. 方法一:使用两个数组只要发现某个元素为0,就将这一行或这一列的头元素置true,然后再遍历矩阵,只要某个元素对应的行或列头元素为true,那么对 ...

最新文章

  1. 机器学习系列 5:特征缩放
  2. PHP 端口号 是否 被占用 以及 解决方法
  3. Mybaitis 缓存的优化
  4. 计算机软件硬件试讲,试讲:初识计算机网络
  5. ML之LiR:使用线性回归LiR回归模型在披萨数据集上拟合(train)、价格回归预测(test)
  6. matlab 定义一个有自变量的方程_Eviews、Stata、Python、Matlab、R描述+相关+回归分析教程汇总...
  7. JavaParser中AST节点的观察者
  8. hbase(三)coprocessor
  9. Cucumber 相关资源
  10. 设计灵感|电商美工,年年都能借鉴的新年
  11. Linux-Can't create socket: Too many open files
  12. Android 实现静默安装
  13. asp.net 大文上传配置
  14. 一点计算机电脑就闪,电脑启动有点闪烁是怎么回事
  15. 作为一名女程序员是什么体验?
  16. 【战神引擎】游戏不开门怎么解决?
  17. 解决visio和office365冲突,无法安装visio问题
  18. ESP32产品系列之智能插座(一),框架及硬件设计
  19. codeforces.1253 B
  20. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十四)具体单板的GPIO操作方法

热门文章

  1. s5pv210启动debian出错提示bash: cannot set terminal process group (-1): Inappropriate ioctl for device...
  2. RobotFrameWork接口报文测试-----(一)简单demo的实现
  3. Spring自定义属性编辑器PropertyEditorSupport + 使用CustomEditorConfigurer注册属性编辑器...
  4. 一键安装GitLab7在RHEL6.4上
  5. 开发者和程序员需要关注的42个播客
  6. 一种改进的快速人脸检测算法
  7. 机器学习资料推荐 URL
  8. Python 存储模型
  9. MVC ---- EF的延迟加载
  10. 八、数据库服务连接存储(MPIO) 中