Поскольку это вопрос интервью, интервьюер, как правило, ожидает точных ответов о проблеме.
Без альтернативного хранилища (т.е. O (1) хранилища, в котором вы, вероятно, будете использовать некоторые счетчики / указатели), кажется очевидным, что ожидается деструктивная операция, возможно, стоит указать на это интервьюеру .
Теперь реальный вопрос: хотите ли вы сохранить относительный порядок элементов? т.е. эта операция должна быть стабильной?
Стабильность сильно влияет на доступные алгоритмы (и, следовательно, на сложность).
Наиболее очевидный выбор - перечислить Алгоритмы сортировки , в конце концов, после сортировки данных довольно просто получить уникальные элементы.
Но если вам нужна стабильность, вы не можете на самом деле сортировать данные (поскольку вы не можете получить «правильный» порядок обратно), и поэтому мне интересно, разрешается ли это менее чем за O (N ** 2), если речь идет о стабильности.