Функция, возвращающая уникальные элементы массива

Подсчитайте частоты и оставьте в исходном порядке только значения со счётчиком 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 различных чисел. Контракт числового списка предполагает пригодность элементов в качестве ключей счётчика.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее