Ctrl K

Из угла в угол ходом короля

Средняя
Дана квадратная сетка grid размером n × n: 0 — свободная клетка, 1 — стена. Нужно пройти из левого верхнего угла (0, 0) в правый нижний (n - 1, n - 1), наступая только на свободные клетки. За один шаг можно перейти в любую из восьми соседних клеток — по стороне или по диагонали, как король в шахматах. Длина пути — число клеток на нём, включая первую и последнюю. Верните длину кратчайшего пути или -1, если пройти нельзя (в том числе когда одна из угловых клеток занята).
Пример 1
grid=[[0, 0, 1], [1, 0, 1], [1, 1, 0]] → 3

Путь (0, 0) → (1, 1) → (2, 2) проходит по диагоналям через 3 клетки.

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

Вниз по левой колонке до (2, 0), затем по диагонали на (3, 1), (2, 2) и (3, 3): всего 6 клеток.

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

Правый нижний угол занят — пути нет, ответ -1.

Ограничения
  • n == len(grid) == len(grid[i])
  • 1 ≤ n ≤ 100
  • grid[i][j] равно 0 или 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОсушение замкнутых прудов СредняяУчастки суши на карте СредняяШаги до ближайшего выхода СредняяДождь стекает в оба моря СредняяОстановится ли шарик в цели Средняя
загружаем Python…
Вход
grid=[[0, 0, 1], [1, 0, 1], [1, 1, 0]]
Ожидается
3

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