Menu
CoddyTech

Set Matrix Zeroes

L’input è una griglia m × n di interi, fornita riga per riga, quindi matrix[i][j] si trova nella riga i e nella colonna j. Ovunque la griglia contenga uno 0, imposta a 0 l’intera riga e l’intera colonna corrispondenti. Conta solo gli zeri presenti all’inizio: una cella che trasformi in 0 non azzera la propria riga o colonna. Puoi modificare la griglia sul posto; restituiscila.

Funzione

setZeroes(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
la griglia di numeri interi, una lista interna per riga
Restituisceinteger-2d-array
la matrice con ogni riga e ogni colonna che contenevano uno 0 impostate a 0

Vincoli

  • m == matrix.length e n == matrix[i].length
  • 1 ≤ m, n ≤ 1000 and m × n ≤ 5000
  • Tutte le righe m contengono n valori.
  • -1000 ≤ matrix[i][j] ≤ 1000

Esempi

Input
matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]
Output
[[3, 0, 1], [0, 0, 0], [2, 0, 4]]
Spiegazione
L’unico 0 si trova nella riga 1, colonna 1. La riga 1 diventa composta solo da zeri, e lo stesso vale per la colonna 1, che trasforma l’8 e il 6 in 0. I quattro angoli non si trovano in nessuna delle due linee e mantengono i loro valori.
challenge icon

Per approfondire

L'approccio migliore qui sotto mantiene due booleani aggiuntivi. Riesci a cavartela con uno solo, facendo sì che matrix[0][0] rappresenti la prima riga?

Ripristina il codice
def setZeroes(matrix):
    # Scrivi il codice qui

Test #1

Test #2

Argomento

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

Output atteso

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