O(1) амортизировано (amortized).
При добавлении элемента в конец массива, если есть свободное место, происходит простое присваивание, что занимает O(1).
Если массив заполнен, требуется перевыделение памяти и копирование всех существующих элементов в новое, большее хранилище. Эта операция занимает O(N), где N - количество элементов в массиве.
Благодаря стратегии удвоения размера при перевыделении, средняя стоимость добавления элемента за большое количество операций стремится к постоянной величине.
Пример на Swift:
swift