Шаг за шагом: удаление дубликатов из списка
Пройдём задачу шаг за шагом — такой формат удобен для первого знакомства с алгоритмами.
Задача
Убрать из списка повторы, сохранив порядок первого появления элементов.
Решение
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. Входные данные. Проверяем, что приходит в функцию, и какие значения считаются корректными.
- Шаг 2. Основной цикл. Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
- Шаг 3. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.
Читая чужой код, повторите тот же мысленный разбор по шагам — это самый быстрый способ научиться.
Related:
- Несколько вариантов решения: проверка палиндрома
- Two approaches to anagram checking
- Шаг за шагом: проверка палиндрома
- 久志 松風
- urjessicastone onlyfans
- Осваиваем задачу: решето Эратосфена
- Проверяем решение тестами: максимум и минимум списка
- Two ways to solve bracket sequence validation
- Arzu Yılmaz Ifsa Adult Photo Gallery | Turkish Models
- Изучаем задачу: шифр Цезаря
- Cherish Art Modelling Studios: Gallery & Model Photos
- سکس ایرانی در ویلا
- Частые ошибки при решении: бинарный поиск
- silku-071
- 流欲xx工坊
- Mimi R34 Typh - Furry NSFW AI Character Gallery
- kimikopretty
- Francety Videos: Latina MILF OnlyFans Porn Gallery
- raperin yılmaz ifşa
- lisa maisie julia ss
- Несколько вариантов решения: переворот строки
- Writing tests for bubble sort