Порридж В Ко-ливинге
Там именно в самом методе иттерации проблема
Порридж В Ко-ливинге
Плюсы капец как трудно дебажить
Порридж В Ко-ливинге
С Си и JS у меня вообще таких проблем не было
Порридж В Ко-ливинге
Что то не так сделал: На плато текста – разбирайся
Viktor
С Си и JS у меня вообще таких проблем не было
Надо писать на си тогда 🙂 странно, что в си и си++ у вас разных дебаг.
Viktor
в JS ладно, согласен, что проще.
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Viktor
На любых
https://ideone.com/W3xUag
Viktor
точно на любых? вот почему-то работает
Порридж В Ко-ливинге
Блин
Viktor
Прилагаю говно-код https://pastebin.com/gB79FYQM
я ещё не очень понимаю зачем вы создаёте в куче сеты, через new set, и храните указатели на них? если хранить в мапе просто set, а не указатель на него, он один хрен будет в куче создаваться по капотом — мап это ж динамическая структура данных
Viktor
сами себе создаёте больше возможностей для выстрелов в ногу. пусть stl занимается там внутри указателями.
Порридж В Ко-ливинге
Ну
Порридж В Ко-ливинге
Я это сделал чтобы у разных цифр был один сет
Порридж В Ко-ливинге
Чтобы не надо было в каждом сете менять
Viktor
Я это сделал чтобы у разных цифр был один сет
это уже хорошее начало 🙂 начнём с задачи, которую решаем.
Порридж В Ко-ливинге
Могу задачу скинуть
Порридж В Ко-ливинге
Это симуляция графа
Порридж В Ко-ливинге
В Мапе хранятся как ключи вершины, а внутри ссылка на сет, с которыми соединена эта цифра
Порридж В Ко-ливинге
https://codeforces.com/contest/1253/problem/D
Порридж В Ко-ливинге
https://ideone.com/W3xUag
Блин, хороший пример
Viktor
В Мапе хранятся как ключи вершины, а внутри ссылка на сет, с которыми соединена эта цифра
В графе ровно n вершин, т.е. числа от 1..n. Почему бы просто не завести вектор векторов размера n+1, каждый элемент будет содержать номера вершин с которой соединена данная вершина. Просто матрица с чиселками получится.
Viktor
Вообще матрица классический пример представления неориентированных графов, по-моему.
Порридж В Ко-ливинге
Ну, это будет затратнее чем через мапы и сеты
Порридж В Ко-ливинге
Будет 2 соединения
Evgeniy
Ты про время?
Порридж В Ко-ливинге
1-3-4-8-9 и 11-2-6-29-7
Viktor
Будет 2 соединения
это называется преждевременная оптимизация 🙂
Порридж В Ко-ливинге
1-3-4-8-9 и 11-2-6-29-7
А потом их соединить
Порридж В Ко-ливинге
А потом их соединить
И это надо будет каждый у 25 раз обойти
Порридж В Ко-ливинге
А если бы был один общий сет – то за 1 insert общий можно ыбло
Порридж В Ко-ливинге
ТААк
Порридж В Ко-ливинге
Я нашел проблемы
Порридж В Ко-ливинге
// delete nums[v];
Порридж В Ко-ливинге
Но new же надо delete
Порридж В Ко-ливинге
// delete nums[v]; nums[v] = nums[u];
Порридж В Ко-ливинге
У меня leak, да?
Иван
Кто-нибудь может объяснить вот такой кейс?)
Иван
["LRUCache","put","put","get","put","put","get"] [[2],[2,1],[2,2],[2],[1,1],[4,1],[2]]
Иван
Почему результат
Иван
[null,null,null,2,null,null,-1]
Иван
А не
Иван
[null,null,null,2,null,null,2]
Viktor
Почему результат
А у тебя капасити 2. после того как первый раз двойку прочитали, мы ещё две ноды добавили в кеш и они вытеснили двойку совсем. поэтому при следующем чтении — -1, т.е. нет в кеше уже
Viktor
но если бы мы скажем после того как положили первую ноду прочитали двойку ещё раз, то уже бы не вытеснили, потому что раз мы её почитали — она в начало списка летит.
Иван
Да понял, спасибо!
Порридж В Ко-ливинге
Что-то совсем все плохо
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Порридж В Ко-ливинге
ВО
Порридж В Ко-ливинге
https://ideone.com/AUVVnu
Порридж В Ко-ливинге
Со мной солидарны
Evgeniy
Наконец-то сделал
Evgeniy
На 12 тесте застрял поначалу. Всё переписал заново, и прошло
Evgeniy
Надо внимательно задание читать
Viktor
А что было?
Viktor
да уж, это какая-то жесть 😄
Порридж В Ко-ливинге
Я тоже дичь писал какую-то
Evgeniy
Не удалялась запись из хэш-таблицы, когда узел из листа уже удалён
Порридж В Ко-ливинге
С говно проверками
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Порридж В Ко-ливинге
Капец
Evgeniy
Откуда минус?
Viktor
https://ideone.com/AUVVnu
а что делает UniqueList, точнее почему нельзя взять просто https://en.cppreference.com/w/cpp/container/list ?
Порридж В Ко-ливинге
Потому что я в нем запутался
Порридж В Ко-ливинге
🤣🤣
Порридж В Ко-ливинге
Ну да, думаю на лист сейчас перепишу
Viktor
Потому что я в нем запутался
Давайте распутаемся 😄 Если есть хорошо протестированный лист из стандартной библиотеки имеет смысл пользоваться им, чем писать ещё раз 😄
Viktor
Писать свой лист можно и нужно, в образовательных целях, но только один раз.
Viktor
Не для этой задачи.
Порридж В Ко-ливинге
Сейчас попробую