Junior — Middle
169
Jaką strukturę danych najlepiej używać do szybkiego wydobywania maksymalnego elementu przy rzadkich wstawieniach?
Firmy, w których zadano pytania
Odpowiedź od AI
sobes.tech AI
Для задачи быстрого извлечения максимального элемента при редких вставках предпочтительнее использовать структуру данных Max-Heap (максимальная куча).
Пояснение:
- Вставка в кучу занимает O(log n) времени.
- Извлечение максимума — O(1) для доступа к корню и O(log n) для удаления.
Если вставки действительно редкие, а извлечения максимума частые, то Max-Heap обеспечивает хороший баланс между скоростью вставки и быстрым доступом к максимуму.
В Java можно использовать PriorityQueue с компаратором для максимума:
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());
// Вставка
maxHeap.offer(10);
maxHeap.offer(5);
// Получение максимума
int max = maxHeap.peek();