Menu
CoddyTech

Set Matrix Zeroes

输入是一个 m × n 的整数网格,按行给出,因此 matrix[i][j] 位于第 i 行、第 j 列。无论网格中的哪个位置有 0,都要将该整行和整列设为 0。只有一开始就存在的 0 才算数:你将某个单元格改为 0 后,它所在的行和列不会因此被清零。你可以直接修改网格,并返回它。

函数

setZeroes(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
整数网格,每行对应一个内部列表
返回值integer-2d-array
将所有包含 0 的行和列都设为 0 的矩阵

约束条件

  • m == matrix.length 并且 n == matrix[i].length
  • 1 ≤ m, n ≤ 1000 并且 m × n ≤ 5000
  • 所有 m 行都包含 n 个值。
  • -1000 ≤ matrix[i][j] ≤ 1000

示例

输入
matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]
输出
[[3, 0, 1], [0, 0, 0], [2, 0, 4]]
解释
唯一的 0 位于第 1 行、第 1 列。第 1 行全部变为 0,第 1 列也全部变为 0,因此 8 和 6 都变成了 0。四个角都不在这两行中,因此保留原值。
challenge icon

进阶

下面的最佳方法会保留两个额外的布尔值。你能只用一个吗?让 matrix[0][0] 表示第一行。

重置代码
def setZeroes(matrix):
    # 在这里编写代码

测试 #1

测试 #2

参数

matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]

预期输出

[[3, 0, 1], [0, 0, 0], [2, 0, 4]]