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
整数のグリッド。各行に1つの内側リスト
戻り値integer-2d-array
0を含んでいたすべての行と列を0にした行列

制約

  • m == matrix.lengthおよびn == matrix[i].length
  • 1 ≤ m, n ≤ 1000 and 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 列也一样,这会将 8 和 6 变为 0。四个角都不在这两条线上,因此保持原值。
challenge icon

発展問題

以下の最適な方法では、追加の真偽値を2つ保持します。matrix[0][0]を最初の行の代わりとして使い、1つだけで済ませられますか?

コードをリセット
def setZeroes(matrix):
    # ここにコードを書いてください

テスト #1

テスト #2

引数

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

期待される出力

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