Задача не полна без её "приземления". Например может оказаться что у нас памяти больше нет ВООБЩЕ (ну. то есть памяти есть O(1)). Тогда нужно трансформировать данные на месте.
Либо памяти у нас завались и надо сделать как можно быстрее.
Либо у нас память бывает разная - очень быстрая, но мало, средне средней и завались медленной. Все данные целиком единым куском влазят только в медленную. Оптимизируем по скрости.
Ну и так далее. Кроме всего прочего, разные операции могут еще по разному стоить (сравнение - одна стоимость, копирование - совсем уже другая).
Также операции (некоторые) в некоторых случаях могут векторизироваться.
Ну и т.д. и т.п.
Поэтому, на собеседовании, когда я человеку коварно даю алгоритмическую задачку и НЕ уточняю вешеперечисленные особенности, я обычно ожидаю либо увидеть самое простое (и потому поддерживаемое) решение, либо услушать множество уточняющих вопросов (на которые я обычно говорю - после узнаешь, ты напиши для начала как-нибудь).