В настоящее время я работаю над небольшим проектом решателя лабиринта, в котором вы найдете кратчайший путь в лабиринте, чтобы лучше понять алгоритмы поиска пути, например, в этом примере ширина -...

0
Codexing 6 Янв 2021 в 17:20

1 ответ

Лучший ответ

Я не уверен, как вы думали вывести кратчайший путь. Но альтернативным подходом было бы использование целочисленной матрицы вместо логической матрицы. Затем запишите в каждой ячейке, как далеко она находится от начала.

То есть при обработке точки считывать текущее расстояние до начала из целочисленной матрицы. Затем определите всех его допустимых соседей, у которых все еще есть расстояние 0 в своих ячейках, запишите текущее расстояние + 1 в эти ячейки и добавьте их в очередь.

В конце вы можете найти кратчайший путь, отступив от цели, следуя пути, который уменьшается на 1 с каждым шагом.

1
fishinear 6 Янв 2021 в 21:34