Сегодня решил проблему с BFS от Hackerrank.
Я получил TLE в более раннем начале. Я понял, что использование «для элемента в списке» для обхода списка в порядке очереди не так эффективно. Поэтому я изменил реализацию на очередь, она работает. В python очередь поддерживается collections.deque
Проблема:
Проект Эйлера № 244: Слайдеры
Вот мой код
Я хотел бы резюмировать одну тонкую вещь:
для BFS, если нужны все самые популярные решения, мы должны добавить или new_state == des, чтобы включить в очередь несколько лучших решений.
if new_state not in seen or new_state == des:
Спасибо за чтение. Я надеюсь, что это помогает.