Как решить задачу по нахождению кратчайшего маршрута между двумя точками?
Есть задача закончить функцию и условие.
- Для реализации, нельзя использовать сторонние библиотеки, которые предоставляют алгоритм расчета кратчайшего пути.
- Набор и структуру входных данных функции minWalk нельзя изменять, задача реализовать функцию а не менять ее.
Описание
Вам дается квадратная сетка с обычными . и заблокированными X ячейками.
Ваша игровая фигура может перемещаться по любой строке или столбцу или диагонали, пока не достигнет края сетки или заблокированной ячейки.
Учитывая сетку, начальную и конечную позиции, определите количество ходов, чтобы добраться до конечной позиции.
Например
Дана сетка:
.X.
.X.
...
Система координаты для данной сетки:
0.0 0.1 0.2
1.0 1.1 1.2
2.0 2.1 2.2
Начальна позиция 2.1 (отсчет идет с верхнего левого края сетки 0.0) Конечная позиция 0.2
Путь движения между точками: (2.1) -> (1.2) -> (0.2) Ответ: необходимо выполнить 2 шага.
Задача
Завершите выполнение функции в редакторе. Функция должна вывести целое число, обозначающее минимальное количество шагов для перехода от начальной позиции к конечной. Ограничения
Длина сетки > 1 и < 100 Координата начальной и конечной точки входит в предоставленную сетку.
function minWalk(gridList, startX, startY, endX, endY) {
// TODO
return '';
}
const result = minWalk(
[
'.X.',
'.X.',
'...',
],
2, 1,
0, 2
);
$('#res').text(result);
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#banner-message {
background: #fff;
border-radius: 4px;
padding: 20px;
font-size: 25px;
text-align: center;
transition: all 0.2s;
margin: 0 auto;
width: 300px;
}
<div id="banner-message">
<p id="result"></p>
</div>