Назад к вопросам
Junior — Middle
64
В каких ситуациях добавление элемента в конец ArrayList может иметь временную сложность O(n)?
Компании, где спрашивали
IBS
Ответ от нейросети
sobes.tech AI
Добавление элемента в конец ArrayList обычно имеет амортизированную временную сложность O(1), но в некоторых случаях может быть O(n). Это происходит, когда внутренний массив, который хранит элементы, заполнен, и требуется его расширение.
При добавлении нового элемента:
- Если места хватает, элемент просто добавляется — O(1).
- Если места нет, создаётся новый массив большего размера (обычно в 1.5-2 раза больше), и все существующие элементы копируются в новый массив — это операция O(n).
Таким образом, добавление элемента может иметь временную сложность O(n) именно в момент расширения внутреннего массива.