Подсчитайте частоты и оставьте в исходном порядке только значения со счётчиком 1. Это отличается от удаления дубликатов через set, где одно повторявшееся значение всё равно осталось бы.
Функция, возвращающая уникальные элементы массива
Подсчитайте частоты и оставьте в исходном порядке только значения со счётчиком 1. Это отличается от удаления дубликатов через set, где одно повторявшееся значение всё равно осталось бы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Функция получает список чисел и формирует новый список, в котором сохраняются только те значения, которые встречаются в исходном списке ровно один раз.
def get_unique_numbers(arr):
# реализация будет здесь
pass
Ответ
Подсчитайте частоты и оставьте в исходном порядке только значения со счётчиком 1. Это отличается от удаления дубликатов через set, где одно повторявшееся значение всё равно осталось бы.
from collections import Counter
def get_unique_numbers(arr):
counts = Counter(arr)
return [number for number in arr if counts[number] == 1]
Для [1,2,2,3,1,4] результат [3,4]. Входной список не изменяется, пустой вход возвращает []. Ожидаемое время O(n), память O(k) для k различных чисел. Контракт числового списка предполагает пригодность элементов в качестве ключей счётчика.