Menu
CoddyTech

Set Matrix Zeroes

На вход подаётся сетка целых чисел размером m × n, заданная построчно, так что matrix[i][j] находится в строке i и столбце j. Везде, где в сетке стоит 0, установите 0 во всей этой строке и во всём этом столбце. Учитывайте только нули, присутствовавшие в начале: ячейка, которую вы замените на 0, не обнуляет свою строку или столбец. Вы можете изменить сетку на месте; верните её.

Функция

setZeroes(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
сетка целых чисел, по одному внутреннему списку на строку
Возвращаетinteger-2d-array
матрица, в которой все строки и все столбцы, содержащие 0, заменены на 0

Ограничения

  • m == matrix.length и n == matrix[i].length
  • 1 ≤ m, n ≤ 1000 и m × n ≤ 5000
  • Все строки m содержат n значений.
  • -1000 ≤ matrix[i][j] ≤ 1000

Примеры

Ввод
matrix = [[3, 8, 1], [5, 0, 7], [2, 6, 4]]
Вывод
[[3, 0, 1], [0, 0, 0], [2, 0, 4]]
Пояснение
Единственный 0 находится в строке 1, столбце 1. Строка 1 становится полностью нулевой, как и столбец 1, поэтому 8 и 6 превращаются в 0. Четыре угловых элемента не находятся ни в одной из этих линий и сохраняют свои значения.
challenge icon

Дополнительный вопрос

В приведённом ниже способе используются две дополнительные булевы переменные. Можно ли обойтись одной, используя matrix[0][0] для обозначения первой строки?

Сбросить код
def setZeroes(matrix):
    # Напишите код здесь

Тест #1

Тест #2

Аргумент

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

Ожидаемый вывод

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