Menu
CoddyTech

Set Matrix Zeroes

La entrada es una cuadrícula m × n de números enteros, proporcionada fila por fila, así que matrix[i][j] está en la fila i y la columna j. Dondequiera que la cuadrícula tenga un 0, establece toda esa fila y toda esa columna en 0. Solo cuentan los ceros que están presentes al principio: una celda que cambies a 0 no pone a cero su propia fila ni su propia columna. Puedes modificar la cuadrícula en el mismo lugar; devuélvela.

Función

setZeroes(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
la cuadrícula de números enteros, una lista interna por fila
Devuelveinteger-2d-array
la matriz con cada fila y cada columna que contenían un 0 establecidas en 0

Restricciones

  • m == matrix.length y n == matrix[i].length
  • 1 ≤ m, n ≤ 1000 y m × n ≤ 5000
  • 모든 m filas contienen n valores.
  • -1000 ≤ matrix[i][j] ≤ 1000

Ejemplos

Entrada
matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]
Salida
[[3, 0, 1], [0, 0, 0], [2, 0, 4]]
Explicación
El único 0 está en la fila 1, columna 1. La fila 1 queda llena de ceros, y lo mismo ocurre con la columna 1, lo que convierte el 8 y el 6 en 0. Las cuatro esquinas no están en ninguna de las dos líneas y conservan sus valores.
challenge icon

Para ir más allá

El mejor enfoque de abajo mantiene dos valores booleanos adicionales. ¿Puedes arreglártelas con uno, haciendo que matrix[0][0] represente la primera fila?

Restablecer código
def setZeroes(matrix):
    # Escribe el código aquí

Prueba #1

Prueba #2

Argumento

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

Salida Esperada

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