Нет, лучшего решения не существует.
Рассмотрим следующее: 1-2-3-4
, A={4}
, v=1
. вам придется перебирать все V, E на графике [вы должны прочитать весь путь], делая эту проблему Omega(V+E)
. поскольку ваш алгоритм корректен [просто доказать] и имеет значение O(V+E)
[triviialy, создающее G 'и BFS], а проблема равна Omega(V+E)
, ваше решение является оптимальным с точки зрения обозначения больших O.