ChatCrawlerпоиск по публичному Telegram Открыть приложение
L

Leetcode heroes

снимок за апрель 2026
апрель 2026 ×
29 апреля 2026
A
А вообще полное тз бы увидеть.
так тебе в любом случае топ к нужно будет отдавать
ну типо зачем пользовтаелю 1000 релевантвх
ему там дай 20 дай бог
А
и дальле подругжай
E
Как обработать запросы один за одним понятно, можно ли батчем быстро?
E
Egor ChistiakovЗадайте уточняющие вопросы ) я попытался формализовать https://t.me/l33tcode/531599
Если серьезно, могу только попробовать пример описать чуть лучше Допустим дейтинг В памяти мапа 10^6 структур Person У каждой набор из 4 полей Name, HairColor(Enum{Blond, Black, Ginger}, Age(int), Sex(Enum){Male, Female} Приходит сразу пачка из 100 запросов с произвольным набором предикатов но в пределах 4 полей Example Name=any, HairColor=Ginger, Age=32; Sex=Male, age>=100; Надо в результате вернуть map reuest->[]answers где лежит до 100 подходящих записей если они есть —- Если обрабатывать каждый запрос по одному то все понятно, но в сумме сложность все равно получится Q*A*P Можно ли как-то сделать это быстрее если не строить heap на каждый запрос в батче?
30 апреля 2026
Y
Dimaтекст ещё не в индексе
Heapsort — O(n log n) tc, O(1) sc Результат сам по себе не считается, но если его абузить под промеужточные вычисления — спорно; я такое стараюсь комментировать :-) Ещё есть задачки, в которых надо возвратить результат in-place
E
Egor ChistiakovЕсли серьезно, могу только попробовать пример описать чуть лучше Допустим дейтинг В памяти мапа 10^6 структур Person У каждой набор из 4 полей Name, HairColor(Enum{Blond, Black, Ginger}, Age(int), Sex(Enum){Male, Female} Приходит сразу пачка из 100 запросов с произвольным набором предикатов но
по сайтам знакомств из личного опыта могу сказать, что часто встречал кеширование поисковых запросов, ты первые 100 выдаешь поиском, но он на самом деле сразу ищет больше потом уже выдаешь закешированные результаты!
I
индексы же предлагали уже. что не так с ними?
B
Egor ChistiakovЕсли серьезно, могу только попробовать пример описать чуть лучше Допустим дейтинг В памяти мапа 10^6 структур Person У каждой набор из 4 полей Name, HairColor(Enum{Blond, Black, Ginger}, Age(int), Sex(Enum){Male, Female} Приходит сразу пачка из 100 запросов с произвольным набором предикатов но
Самое реалистичное это btree индексы для inmemory db с TC: O(q * loga) для запроса в примере (HairColor, Sex, Age) include (name) тогда будет index only scan Наверное из нереалистичного супер оптимизированного можно сделать 2 шарда для sex (если мы в непрогрессивной стране, в прогрессивной можно сделать 3 шарда), в каждом шарде партицирование по age и hash индекс по волосам. Тогда можно будет пробежаться только по партиции нужного age проверяя в индексе волосы. Сложность будет O(q) нам нужно просто собрать ответ будет
Видео
IMG_8108.mp4 · 9.8 МБ · нажмите — покажем
С
Egor ChistiakovЕсли серьезно, могу только попробовать пример описать чуть лучше Допустим дейтинг В памяти мапа 10^6 структур Person У каждой набор из 4 полей Name, HairColor(Enum{Blond, Black, Ginger}, Age(int), Sex(Enum){Male, Female} Приходит сразу пачка из 100 запросов с произвольным набором предикатов но
Сделать это в inMemory базе, хоть в sqlite, построить там индексы по HairColor, Age, Sex, name и всем комбинациям их наличия в запросе (это 16 штук вроде) Sql запрос с where HairColor=Ginger, Age=32; Sex=Male, age>=100 limit 100 выдаст при наличии HairColor, Age,Sex, индекса список за миллисекунды
Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог