7th November 2026

Несколько вариантов решения: удаление дубликатов из списка

Покажу решение и коротко сравню его с альтернативным подходом.

Задача

Убрать из списка повторы, сохранив порядок первого появления элементов.

Решение


def unique(arr: list) -> list:
    seen = set()
    result = []
    for x in arr:
        if x not in seen:
            seen.add(x)
            result.append(x)
    return result


print(unique([1, 2, 2, 3, 1, 4]))

Как это работает

Множество seen отвечает за быструю проверку «встречался ли элемент», список result сохраняет порядок. Простое приведение к set() порядок бы не сохранило.

Пример работы


[1, 2, 3, 4]

Сложность

O(n) по времени и памяти.

Альтернативный подход

Ту же задачу часто решают иначе: например, через рекурсию вместо цикла или через стандартную библиотеку вместо ручной реализации. Альтернатива обычно короче, но первое «ручное» решение лучше показывает механику работы алгоритма. Полезно написать оба и сравнить на одинаковых тестах.

Оба подхода рабочие; важно понимать цену каждого, а не копировать первый попавшийся.


Related:

desi girl showing her boobs

Осваиваем задачу: вычисление факториала

Медленно и подробно: проверка анаграмм

muchitinasub cosplay catgirl nude photo collection 255 sets

Ловушки новичков при решении: сортировка пузырьком

liseli türk porn

silk 060

Пошаговый разбор: шифр Цезаря

Mother's Warmth Chapter 3 by Jackerman | 3D Adult Comic

Частые ошибки при решении: сортировка слиянием