Ctrl K

Шаги до ближайшего нуля

Средняя
Дана прямоугольная таблица grid из нулей и единиц. Из клетки можно шагнуть в соседнюю по стороне — вверх, вниз, влево или вправо; каждый такой шаг стоит 1. Для каждой клетки найдите, за сколько шагов из неё можно дойти до ближайшей клетки с нулём. У самих нулей это расстояние равно 0. Верните таблицу того же размера, где на месте каждой клетки стоит её расстояние.
Пример 1
grid=[[1, 1, 0], [1, 1, 1], [0, 1, 1]] → [[2, 1, 0], [1, 2, 1], [0, 1, 2]]

До нуля в правом верхнем углу или в левом нижнем идти по-разному. Центральной клетке до любого из них два шага, правой нижней — тоже два (вверх-вверх или влево-влево).

Пример 2
grid=[[1, 1, 1, 0]] → [[3, 2, 1, 0]]

Одна строка: расстояния просто убывают к нулю справа.

Пример 3
grid=[[0, 0], [0, 0]] → [[0, 0], [0, 0]]
Ограничения
  • 1 ≤ число строк, число столбцов
  • число строк × число столбцов ≤ 10⁴
  • grid[i][j] — 0 или 1
  • В таблице есть хотя бы один 0
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДальше всего от берега СредняяПерекрыть единственный проход СредняяКамни на поле 3 × 3 СредняяСамый длинный подъём по карте СложнаяПятнашки на шесть клеток Сложная
загружаем Python…
Вход
grid=[[1, 1, 0], [1, 1, 1], [0, 1, 1]]
Ожидается
[[2, 1, 0], [1, 2, 1], [0, 1, 2]]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 70 тестов на сервере, включая скрытые.