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) по времени и памяти.

Разбор по шагам

1. Шаг 1. Входные данные. Проверяем, что приходит в функцию, и какие значения считаются корректными. 2. Шаг 2. Основной цикл. Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации. 3. Шаг 3. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.

Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.


Related:

BabyYurin: Exclusive Hentai, Amateur Asian & Step Fantasy Videos

木崎 凪

amazing world of gumball hentai comic

Пошаговый разбор: сортировка слиянием

Два подхода: подсчёт частот слов

YUDIIIASMR Nude Leaked OnlyFans Photos and Videos Gallery

Несколько вариантов решения: сортировка слиянием

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

colmek depan kos sebelum ngewe

camila araujo videos