Контест Middle Задачи на Java спрашивают часто обновлено

Кратчайший путь в лабиринте

Условие

Лабиринт задан сеткой: . свободная клетка, # стена, S старт, T цель. За шаг можно перейти в соседнюю по стороне свободную клетку. Найдите минимальное число шагов от S до T.

Ввод: в первой строке n и m (1 ≤ n, m ≤ 1000), далее n строк по m символов. S и T встречаются ровно по одному разу.

Вывод: число шагов или -1, если дойти нельзя.

Пример

3 4
S..#
.#..
...T
5

Как подойти

BFS по сетке.

Подсказки: 2
  1. Все рёбра одинакового веса: нужен BFS.
  2. Помечайте клетку при добавлении в очередь.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.