Кратчайший путь в 2d массивах

*...*..D
.G..*.....
**...**.
.S....*.
........
...G**..
........
.G..*...

Вот 2d массив где
S- Источник
Д-назначения
G-Point должен быть посещен
. "." Свободные пути
"*" Блокировать пути
Можете ли вы помочь мне, который был бы эффективным алгоритмом, чтобы найти длину кратчайшего пути в Java
Возможны только горизонтальные и вертикальные движения

Ответы на вопрос(3)

Ваш ответ на вопрос