Порридж В Ко-ливинге
Queue
Порридж В Ко-ливинге
Что-то страшное
Viktor
Ой, priority que
тот же heap, да
Порридж В Ко-ливинге
Пошел гуглить
Viktor
только это всё равно N * log N
Порридж В Ко-ливинге
Вы напугали ребенка перед сном
Порридж В Ко-ливинге
Viktor
Не, время.
Viktor
Память N
Порридж В Ко-ливинге
Память N
Тогда нет((9(
Порридж В Ко-ливинге
Вообще, можно память 1 получить
Порридж В Ко-ливинге
Порридж В Ко-ливинге
А потом без памяти
Uladzimir
Блин, как вы все это успеваете, я три дня пытался это дерево обойти :)
Uladzimir
ну конечно)
Uladzimir
джуниором себя ощущаю 🙂
Viktor
джуниором себя ощущаю 🙂
Ну лично я не работаю реально, но другие, скорее всего, все-таки работают, а не литкодят. Просто молодцы :-)
Viktor
Все успевают
Evgeniy
Как я понял, или O(N logN) O(1)
For the second version (erase(val)), logarithmic in container size.
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
Если я не напутал
Порридж В Ко-ливинге
Аккуратно вышло)
https://pastebin.com/VSGai560
Evgeniy
Порридж В Ко-ливинге
Worst case: Linear in the container size.
Это не так работает
Порридж В Ко-ливинге
Прочитай почему linear
Порридж В Ко-ливинге
Типо если Хэш функция “закончитя”
Порридж В Ко-ливинге
Но мы живем в волшебном мире волшебных ХЭШ функция
Порридж В Ко-ливинге
Иначе 90% всех O(N) решений идет по пи@#$
Порридж В Ко-ливинге
то есть?
Не, колижнз
Порридж В Ко-ливинге
Худший случай, если хэш функция “поймает” все элементы который в сете
Порридж В Ко-ливинге
Могу ошибаться
Порридж В Ко-ливинге
Порридж В Ко-ливинге
https://pastebin.com/VSGai560
Шило на мыло
Evgeniy
https://pastebin.com/VSGai560
Во, отлично
Порридж В Ко-ливинге
Шило на мыло
Хотя… Наверное почище будет
Evgeniy
@vitkarpov было бы не плохо, если бы меня поправили
Всё же склоняюсь, что в первом варианте было n^2 в худшем случае
Порридж В Ко-ливинге
Как Удаление Хэш элемента может быть медленнее O(1)?
Evgeniy
Если, допустим, у нас все символы повторяются только 1 раз
Порридж В Ко-ливинге
Это же tree под капотом
Evgeniy
Это же tree под капотом
Если упорядоченное
Evgeniy
то логарифм
Порридж В Ко-ливинге
https://stackoverflow.com/questions/34556937/stdunordered-seterase-complexity
Порридж В Ко-ливинге
Ну… Не беда, т.е. можно пренебречь, это особенности имплементации
Порридж В Ко-ливинге
И вообще можно сделат так, чтобы не erase
Порридж В Ко-ливинге
Так что
Порридж В Ко-ливинге
О пошел делать O(N log N) O (1)
Evgeniy
У unordered_map кстати тоже linear у erase, как оказалось
Порридж В Ко-ливинге
В общем аномалии и чудеса
Порридж В Ко-ливинге
А так хотелось магии под капотом
Порридж В Ко-ливинге
https://pastebin.com/VSGai560
Кстати, получается это O(N) по O(N), но N == самая большое кол-во повторений одной буквы
Evgeniy
Ну все равно все символы строки перебирать придется
Порридж В Ко-ливинге
Точно
Порридж В Ко-ливинге
Тогда по памяти O(M)
Порридж В Ко-ливинге
Но ладно
Порридж В Ко-ливинге
Думаю может можно без памяти обойтись 🤣
Порридж В Ко-ливинге
Я схожу с ума
Порридж В Ко-ливинге
Evgeniy
Большие могут быть тоже
Порридж В Ко-ливинге
Ну 46, не суть
Evgeniy
да и вообще, не сказано нигде, что только буквы
Порридж В Ко-ливинге
https://leetcode.com/problems/two-sum/description/
Порридж В Ко-ливинге
Кажется такой простой
Порридж В Ко-ливинге
И самая эксептед
Порридж В Ко-ливинге
Но до сих пор сижу думаю над O(N)
Порридж В Ко-ливинге
Монстрик побежден 🤣
Viktor
Монстрик побежден 🤣
Кстати, задачка из популярного видоса "как мы собеседуем в гугле" — https://www.youtube.com/watch?v=XKu_SEDAykw