170 похожих чатов

Мб лучше в алгоритмы, но хз... Исходные данные: есть набор чисел

в диапазоне [0, 65535] - uint16_t
На вход поступает набор поддиапазонов: например, {42, 80, [10000-10020]} - назовем их "допустимыми значениями"
Чаще всего отдельных допустимых значений немного - в пределах десятка, либо они описывают интервал
Т.е. ситуация {0, 1, 3, 5, ..., 65535} на практике не возникнет.

Задача: для произвольного числа x€[0,65535] ответить, входить ли оно в разрешенные.

Как оптимально хранить и искать в таком случае?

5 ответов

9 просмотров

Хранишь диапазоны в массиве отсортировано по началу диапазона. на нем делаешь lower bound по ключу, где ключ - это начало диапазона, затем смотришь находится ли твое число внутри диапазона Сложность логарифм

Оптимально по какому критерию?

Anton Kviatkovskii
Хранишь диапазоны в массиве отсортировано по начал...

По факту массив в данном случае это std::set Но я б перф померил, возможно на векторе будет быстрее

Dmitriy-[Отпуск] Автор вопроса
Boris Usievich
Оптимально по какому критерию?

Поиск - по скорости, хранение - по месту. Но лучше отсортированного массива структур вида [begin, end] я тоже не придумал. Правда, если много отдельных значений вида {80} aka [80, 80], все равно некоторый оверхед получится

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
49
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
Подскажите, есть какие-то события создания/уничтожения у TFrame по типу TForm (OnCreate и OnClose/OnDestroy) ? Как отловить создание TFrame и "перед" уничтожением. На Tframe р...
Денис
8
а чем хуже?
Alexey Kulakov
10
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
1
Карта сайта