Size: a a a

2020 September 26

MB

Mikail Bagishov in pro.algorithms
Andrew Ostrovskii
я начал иди с двух, как раз чтоб исправить тайм лимит ишью
Ну вот необязательно ты выиграешь по скорости, идя с двух концов.
Например, если та часть графа, которая ближе к концу, сильно ветвится, то ты только проиграешь.
источник

MB

Mikail Bagishov in pro.algorithms
Andrew Ostrovskii
Думаешь, shift ботлнек?
Насколько я понимаю, он ухудшает асимптотику до квадрата
источник

AO

Andrew Ostrovskii in pro.algorithms
Andrew Ostrovskii
Ребят, кто сможет подсказать. Решал вот эту задачу литкода

https://leetcode.com/problems/word-ladder/

Решаю вот таким способом

https://pastebin.com/RQNkwXUW


Идея, перебирать bfs с начала трансформаций с конца и, в момент, когда они столкнуться, вернуть кол-во трансформаций. Сам код ответ дает верный, однако, на больших данных падает по тайм-лимиту. Никак не могу понять, в чем ботлнек. Смотрю решения других ребят, но они, делают по сути тоже самое ( или я что-то упускаю ), и их решения проходят в отличии от моего :(

Не могу понять, что я упускаю
да. Ну в JS нет структур данных, типа Queue чтоб можно было достать первый елемент за О(1). Но вот какая штука, вот например решение парня, которое работает
источник

AO

Andrew Ostrovskii in pro.algorithms
источник

AO

Andrew Ostrovskii in pro.algorithms
я не пойму, я тоже самое вроде делаю
источник

AO

Andrew Ostrovskii in pro.algorithms
Но тут тайм лимита нет
источник

MB

Mikail Bagishov in pro.algorithms
Так он и не shift-ит
источник

MB

Mikail Bagishov in pro.algorithms
Вообще, бфс-у не требуется именно очередь
источник

AO

Andrew Ostrovskii in pro.algorithms
Mikail Bagishov
Вообще, бфс-у не требуется именно очередь
я юзал очередь, чтоб длинну знать
источник

MB

Mikail Bagishov in pro.algorithms
Ему сойдет любая структура данных, которая умеет добавить элемент, и удалить какой-нибудь элемент
источник

AO

Andrew Ostrovskii in pro.algorithms
т.е. мне нужно было удалить все елементы
источник

AO

Andrew Ostrovskii in pro.algorithms
и тогда я мог апдейтить счётчик
источник

MB

Mikail Bagishov in pro.algorithms
Mikail Bagishov
Ему сойдет любая структура данных, которая умеет добавить элемент, и удалить какой-нибудь элемент
Точнее, используется несколько таких структур: K+1, если веса ребер от 1 до K
источник

AO

Andrew Ostrovskii in pro.algorithms
хм...
источник

AO

Andrew Ostrovskii in pro.algorithms
А хотя ты прав
источник

AO

Andrew Ostrovskii in pro.algorithms
Наверное, я могу на pop замениь
источник

AO

Andrew Ostrovskii in pro.algorithms
а нет
источник

AO

Andrew Ostrovskii in pro.algorithms
не могу
источник

MB

Mikail Bagishov in pro.algorithms
Одна такая "коробка" должна хранить вершины с равным расстояниес
источник

MB

Mikail Bagishov in pro.algorithms
То решение, которое ты выше скинул, по сути так и делает. Оно явно отделяет вершины с расстоянием X от вершин с расстоянием X+1
источник