Ctrl K

Сквозь стены в дальний угол

Сложная
План склада задан сеткой plan из m строк и n столбцов: 0 — свободная клетка, 1 — стена, которую можно снести. Ходить можно вверх, вниз, влево и вправо, только по свободным клеткам. Вы стоите в клетке (0, 0) и хотите попасть в (m - 1, n - 1). Верните наименьшее число стен, которые нужно снести, чтобы такой путь появился.
Пример 1
plan=[[0, 1, 0], [0, 1, 0], [0, 1, 0]] → 1

Средний столбец целиком занят стенами, так что одну из них придётся снести — и одной достаточно.

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

По свободным клеткам (0, 0) → (0, 1) → (1, 1) → (2, 1) → (2, 2) можно пройти, ничего не ломая.

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

Коридор в одну строку: обе стены стоят на единственном пути.

Ограничения
  • 1 ≤ m, n
  • 2 ≤ m · n ≤ 10⁵
  • plan[i][j] равно 0 или 1
  • plan[0][0] = plan[m - 1][n - 1] = 0
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШарик и лунка СложнаяПерекрасить стрелки до выхода СложнаяЗалы, открывающиеся по расписанию СложнаяКратчайший путь катящегося шарика СредняяЧерез опасное поле Средняя
загружаем Python…
Вход
plan=[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
Ожидается
1

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