Уникальные элементы
Вы решили задачу. Теперь можно сравнить подходы.
Сначала считаем частоты, затем выводим одиночные элементы в исходном порядке.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Таблица частот
Словарь позволяет посчитать все частоты за один проход. Второй проход сохраняет исходный порядок.
a = list(map(int, input().split()))
counts = {}
for x in a:
counts[x] = counts.get(x, 0) + 1
print(*(x for x in a if counts[x] == 1))
Время: O(n) в среднем. Память: O(n) для списка, частот и аргументов вывода.
Другой способ: Подсчёт каждого значения
Метод count каждый раз проверяет весь список. Код короткий, но подходит только для небольших входов.
a = list(map(int, input().split()))
for x in a:
if a.count(x) == 1:
print(x, end=' ')
Время: O(n²). Память: O(n) для исходного списка; O(1) дополнительной памяти.
На что обратить внимание
- Множество удаляет повторы, но не отличает одиночные значения от повторяющихся.
- Сортировка нарушит требуемый порядок.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.