Menu
CoddyTech

Set Matrix Zeroes

Dane wejściowe to siatka liczb całkowitych o wymiarach m × n, podana wierszami, więc matrix[i][j] znajduje się w wierszu i i kolumnie j. Wszędzie tam, gdzie siatka zawiera 0, ustaw cały wiersz i całą kolumnę na 0. Liczą się tylko zera obecne na początku: komórka, którą zmienisz na 0, nie wyzeruje swojego wiersza ani kolumny. Możesz modyfikować siatkę w miejscu; zwróć ją.

Funkcja

setZeroes(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
siatka liczb całkowitych, jedna lista wewnętrzna na wiersz
Zwracainteger-2d-array
macierz, w której każdy wiersz i każda kolumna zawierające 0 zostały ustawione na 0

Ograniczenia

  • m == matrix.length i n == matrix[i].length
  • 1 ≤ m, n ≤ 1000 i m × n ≤ 5000
  • Wszystkie wiersze m zawierają n wartości.
  • -1000 ≤ matrix[i][j] ≤ 1000

Przykłady

Wejście
matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]
Wyjście
[[3, 0, 1], [0, 0, 0], [2, 0, 4]]
Wyjaśnienie
Jedyne 0 znajduje się w wierszu 1, kolumnie 1. Wiersz 1 składa się teraz z samych zer, podobnie jak kolumna 1, co zmienia 8 i 6 na 0. Cztery narożniki nie leżą na żadnej z tych linii, więc zachowują swoje wartości.
challenge icon

Pytanie dodatkowe

Najlepsze podejście poniżej przechowuje dwa dodatkowe booleany. Czy możesz obejść się z jednym, używając matrix[0][0] do oznaczenia pierwszego wiersza?

Zresetuj kod
def setZeroes(matrix):
    # Napisz kod tutaj

Test #1

Test #2

Argument

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

Oczekiwany wynik

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