У меня есть коллекция с множеством элементов в ней. Эти предметы имеют некоторые свойства, но скажем, что 2 из них значительны в этом случае; Доступен и Приоритет. Доступным является простое свойство bool, тогда как приоритетом может быть любое число в диапазоне от 1 до 100. То, что мне нужно, - найти n количество элементов, которые являются последовательными, где все они доступны (== true) и имеют одинаковый приоритет , Я не ограничиваюсь только использованием коллекции, то есть я могу создать дополнительные структуры данных, чтобы ускорить процесс поиска (например, массив байтов, отображающий статусы таких элементов, как: 101010001).Поиск предметов с одинаковыми свойствами в коллекции
Если я должен визуализировать его немного:
1 [99], 0 [80], 1 [60], 1 [60], 0 [60]
1 и 0 показать доступность и номера в скобках показывают приоритет. Мне нужно найти 3-й и 4-й предметы.
Какой самый быстрый способ реализовать такой алгоритм?
Примечание: Это, конечно, не вопрос о домашнем задании.
EDIT: Я не могу изменить порядок элементов, ни удалить некоторые предметы из коллекции.
Хранить все доступные задачи в отдельной коллекции и сортировать по приоритету? –
HashMap имеет петлю O (1). Не могу сказать, что вы можете стать лучше этого. – FallAndLearn
'которые являются последовательными' - так что вы не должны менять порядок? – MBo