Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
На самом деле решение этой задачи не может иметь линейную сложность. Алгоритмическая сложность для этой задачи ограничивается используемым алгоритмом сортировки, поэтому в лучшем случае можно придумать решение со сложностью O(n log n) — такова сложность алгоритма встроенной сортировки в JavaScript. Однако вами правильно было подмечено, что из-за использования метода shift предельная сложность алгоритма возрастает, что нельзя сказать для решений с использованием pop, как у меня, например.
Так эта операция O(1), так что не вижу в этом ничего плохого + они считаются в разных контекстах, автор конечно мог быть сохранить результаты вычислений в hash map, но в данном случае это стоило бы гораздо дороже, чем просто повторно произвести вычисление
То, что меня напрягает в этом решении — это то, что оно O(n^2) из-за того, что внутри
.map
используется.shift
, хотя задача спокойно решается за O(n)а мне не очень нравится т.к. дважды считаем x % 2