Menu
CoddyTech

Set Matrix Zeroes

A entrada é uma grade m × n de inteiros, fornecida linha por linha, de modo que matrix[i][j] fica na linha i e na coluna j. Sempre que a grade contiver um 0, defina toda essa linha e toda essa coluna como 0. Conte apenas os zeros presentes no início: uma célula que você transforma em 0 não zera sua própria linha nem sua própria coluna. Você pode alterar a grade in-place; retorne-a.

Função

setZeroes(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
a grade de números inteiros, uma lista interna por linha
Retornainteger-2d-array
a matriz com todas as linhas e colunas que continham um 0 definidas como 0

Restrições

  • m == matrix.length e n == matrix[i].length
  • 1 ≤ m, n ≤ 1000 e m × n ≤ 5000
  • Todos os m linhas contêm n valores.
  • -1000 ≤ matrix[i][j] ≤ 1000

Exemplos

Entrada
matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]
Saída
[[3, 0, 1], [0, 0, 0], [2, 0, 4]]
Explicação
O único 0 está na linha 1, coluna 1. A linha 1 fica toda zerada, e o mesmo acontece com a coluna 1, que transforma o 8 e o 6 em 0. Os quatro cantos não estão em nenhuma das linhas e mantêm seus valores.
challenge icon

Para ir além

A melhor abordagem abaixo mantém dois booleanos extras. Você consegue se virar com apenas um, deixando matrix[0][0] representar a primeira linha?

Redefinir código
def setZeroes(matrix):
    # Escreva o código aqui

Teste #1

Teste #2

Argumento

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

Saída Esperada

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