Menu
CoddyTech

Set Matrix Zeroes

L’entrée est une grille m × n d’entiers, donnée ligne par ligne ; ainsi, matrix[i][j] se trouve à la ligne i et à la colonne j. Partout où la grille contient un 0, mettez toute la ligne et toute la colonne correspondantes à 0. Seuls les zéros présents au départ comptent : une cellule que vous transformez en 0 n’efface pas sa propre ligne ni sa propre colonne. Vous pouvez modifier la grille sur place ; renvoyez-la.

Fonction

setZeroes(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
la grille d’entiers, une liste interne par ligne
Renvoieinteger-2d-array
la matrice avec chaque ligne et chaque colonne qui contenait un 0 mises à 0

Contraintes

  • m == matrix.length et n == matrix[i].length
  • 1 ≤ m, n ≤ 1000 et m × n ≤ 5000
  • Toutes les lignes m contiennent n valeurs.
  • -1000 ≤ matrix[i][j] ≤ 1000

Exemples

Entrée
matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]
Sortie
[[3, 0, 1], [0, 0, 0], [2, 0, 4]]
Explication
Le seul 0 se trouve à la ligne 1, colonne 1. La ligne 1 devient entièrement composée de zéros, tout comme la colonne 1, ce qui transforme le 8 et le 6 en 0. Les quatre coins ne se trouvent sur aucune de ces lignes et conservent leurs valeurs.
challenge icon

Pour aller plus loin

L’approche ci-dessous consiste à conserver deux booléens supplémentaires. Peux-tu te contenter d’un seul, en utilisant matrix[0][0] pour représenter la première ligne ?

Réinitialiser le code
def setZeroes(matrix):
    # Écrivez le code ici

Test #1

Test #2

Argument

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

Résultat attendu

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