Порридж В Ко-ливинге
Порридж В Ко-ливинге
Queue
Порридж В Ко-ливинге
Что-то страшное
Порридж В Ко-ливинге
Пошел гуглить
Viktor
только это всё равно N * log N
Порридж В Ко-ливинге
Вы напугали ребенка перед сном
Порридж В Ко-ливинге
Viktor
Не, время.
Viktor
Память N
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Вообще, можно память 1 получить
Порридж В Ко-ливинге
Порридж В Ко-ливинге
А потом без памяти
Uladzimir
Блин, как вы все это успеваете, я три дня пытался это дерево обойти :)
Viktor
Uladzimir
ну конечно)
Uladzimir
джуниором себя ощущаю 🙂
Viktor
Все успевают
Evgeniy
Evgeniy
для сета
Evgeniy
итого nlogn сложность
Evgeniy
ой, это для обычного
Evgeniy
а для unordered:
Evgeniy
Worst case: Linear in the container size.
Evgeniy
то есть выходит квадрат
Evgeniy
http://www.cplusplus.com/reference/unordered_set/unordered_set/erase/
Evgeniy
или точнее n*sqrt(n)
Evgeniy
Если я не напутал
Evgeniy
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Прочитай почему linear
Порридж В Ко-ливинге
Типо если Хэш функция “закончитя”
Порридж В Ко-ливинге
Но мы живем в волшебном мире волшебных ХЭШ функция
Evgeniy
Порридж В Ко-ливинге
Иначе 90% всех O(N) решений идет по пи@#$
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Худший случай, если хэш функция “поймает” все элементы который в сете
Порридж В Ко-ливинге
Могу ошибаться
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Evgeniy
Порридж В Ко-ливинге
Шило на мыло
Хотя… Наверное почище будет
Порридж В Ко-ливинге
Evgeniy
Порридж В Ко-ливинге
Как Удаление Хэш элемента может быть медленнее O(1)?
Evgeniy
Если, допустим, у нас все символы повторяются только 1 раз
Evgeniy
Порридж В Ко-ливинге
Это же tree под капотом
Evgeniy
Evgeniy
то логарифм
Порридж В Ко-ливинге
https://stackoverflow.com/questions/34556937/stdunordered-seterase-complexity
Порридж В Ко-ливинге
Ну… Не беда, т.е. можно пренебречь, это особенности имплементации
Порридж В Ко-ливинге
И вообще можно сделат так, чтобы не erase
Порридж В Ко-ливинге
Так что
Порридж В Ко-ливинге
О пошел делать O(N log N) O (1)
Evgeniy
У unordered_map кстати тоже linear у erase, как оказалось
Порридж В Ко-ливинге
В общем аномалии и чудеса
Порридж В Ко-ливинге
А так хотелось магии под капотом
Evgeniy
Ну все равно все символы строки перебирать придется
Порридж В Ко-ливинге
Точно
Порридж В Ко-ливинге
Тогда по памяти O(M)
Порридж В Ко-ливинге
Но ладно
Порридж В Ко-ливинге
Думаю может можно без памяти обойтись 🤣
Порридж В Ко-ливинге
Я схожу с ума
Порридж В Ко-ливинге
Evgeniy
Большие могут быть тоже
Порридж В Ко-ливинге
Ну 46, не суть
Evgeniy
да и вообще, не сказано нигде, что только буквы
Порридж В Ко-ливинге
https://leetcode.com/problems/two-sum/description/
Порридж В Ко-ливинге
Кажется такой простой
Порридж В Ко-ливинге
И самая эксептед
Порридж В Ко-ливинге
Но до сих пор сижу думаю над O(N)
Порридж В Ко-ливинге
Монстрик побежден 🤣
Viktor
Монстрик побежден 🤣
Кстати, задачка из популярного видоса "как мы собеседуем в гугле" — https://www.youtube.com/watch?v=XKu_SEDAykw