BFS: кратчайший путь в сетке

Hard Python алгоритмы

Условие задачи

Напишите функцию shortest_path(grid), которая находит длину кратчайшего пути в сетке из 0 и 1. Старт -- левый верхний угол (0,0), финиш -- правый нижний. Двигаться можно по 0 (вверх, вниз, влево, вправо). 1 -- стена. Если пути нет, верните -1. Реализуй `shortest_path(grid)` — возвращает число.

Темы

algorithms python

Подсказки

Что проверяет эта задача

Задача «BFS: кратчайший путь в сетке» учит решать алгоритмические задачи на Python: оценивать сложность по времени и памяти и выбирать подходящую структуру данных. Такие задачи регулярно встречаются на собеседованиях аналитиков данных. Уровень сложный — проверяет глубину и умение собрать решение из нескольких приёмов.

Как подступиться к решению

Сначала разбери условие и формат входа-выхода, прикинь крайние случаи (пустой ввод, дубли, NaN). Затем выбери структуру данных и собери решение по шагам — начни с простого рабочего варианта, потом оптимизируй сложность. Код пишешь и запускаешь прямо в браузере: Python-тренажёр исполняет его через Pyodide (pandas, numpy, scipy) и проверяет результат автоматически.

На собеседовании по Python для аналитика ценят чистый читаемый код, корректную обработку крайних случаев (пустой ввод, дубли, None) и умение вслух оценить сложность по времени и памяти. Часто просят не просто решить, а разобрать альтернативные подходы и показать, где наивное решение сломается на большом объёме данных.

Прокачать Python для аналитики — бесплатный курс «Pandas с нуля» и Python-тренажёр.

Открыть задачу в тренажёре → ← Все Python-задачи