Menu
CoddyTech

Set Matrix Zeroes

Die Eingabe ist ein m × n-Raster aus Ganzzahlen, das zeilenweise angegeben wird, sodass sich matrix[i][j] in Zeile i und Spalte j befindet. Überall dort, wo das Raster eine 0 enthält, setze die gesamte Zeile und die gesamte Spalte auf 0. Es zählen nur die Nullen, die zu Beginn vorhanden sind: Eine Zelle, die du auf 0 setzt, setzt nicht ihre eigene Zeile oder Spalte auf 0. Du darfst das Raster direkt verändern; gib es zurück.

Funktion

setZeroes(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
das Raster aus Ganzzahlen, eine innere Liste pro Zeile
Gibt zurückinteger-2d-array
die Matrix, bei der jede Zeile und jede Spalte, die eine 0 enthielt, auf 0 gesetzt wurde

Einschränkungen

  • m == matrix.length und n == matrix[i].length
  • 1 ≤ m, n ≤ 1000 und m × n ≤ 5000
  • Alle Zeilen mit m enthalten n Werte.
  • -1000 ≤ matrix[i][j] ≤ 1000

Beispiele

Eingabe
matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]
Ausgabe
[[3, 0, 1], [0, 0, 0], [2, 0, 4]]
Erklärung
Die einzige 0 befindet sich in Zeile 1, Spalte 1. Zeile 1 besteht danach nur noch aus Nullen, ebenso Spalte 1, wodurch die 8 und die 6 zu 0 werden. Die vier Ecken liegen auf keiner der beiden Linien und behalten ihre Werte.
challenge icon

Weiterführende Frage

Der folgende Ansatz behält zwei zusätzliche boolesche Werte bei. Kommst du mit einem aus und lässt matrix[0][0] für die erste Zeile stehen?

Code zurücksetzen
def setZeroes(matrix):
    # Schreibe hier den Code

Test #1

Test #2

Argument

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

Erwartete Ausgabe

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