Встречается на собеседованиях • сегодня

Какая сложность операций с ArrayList при частом получении максимума при нечастом добавлении

Для частого получения максимума при нечастом добавлении в `ArrayList` сложность операций будет: - **Добавление элемента**: O(1) в среднем (амортизированно), O(n) в худшем случае при расширении массива. - **Получение максимума**: O(n), так как требуется линейный поиск по всем элементам. **Оптимизация**: Если максимум нужен часто, лучше использовать структуру, поддерживающую его за O(1), например `PriorityQueue` (но добавление будет O(log n)). **Пример с `ArrayList`**: ```java List list = new ArrayList<>(); list.add(5); list.add(3); list.add(8); int max = Collections.max(list); // O(n) ``` **Пример с `PriorityQueue`**: ```java PriorityQueue pq = new PriorityQueue<>(Comparator.reverseOrder()); pq.add(5); pq.add(3); pq.add(8); int max = pq.peek(); // O(1) ``` Выбор зависит от частоты операций: если добавление редкое, а поиск максимума частый, `PriorityQueue` эффективнее.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы