12th November 2026

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

У большинства учебных задач есть минимум два честных решения — сравним их.

Задача

Найти максимальный и минимальный элементы списка за один проход.

Решение


def min_max(arr: list[int]) -> tuple[int, int]:
    lo = hi = arr[0]
    for x in arr[1:]:
        if x < lo:
            lo = x
        elif x > hi:
            hi = x
    return lo, hi


print(min_max([4, 7, 1, 9, 3]))

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

Один проход по списку: каждое число сравнивается с текущими минимумом и максимумом. Это вдвое быстрее двух отдельных проходов.

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


(1, 9)

Сложность

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

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

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

Выбор между решениями — это баланс читаемости и скорости: для учебной задачи важнее первый.


Related:

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

Maria Follosco Scandal Leak Asian Strip Tease Video

女王圣水调教图集:女S圣水羞辱男奴,厕奴喝圣水、恋足、坐脸、口舌服务等女王调教高清写真大合集

claudia bavel publicagent

东华田园兔

xloveit

href="//workshopf1ec8b.notepin.co/merge-sort-shagi">Шаг за шагом: сортировка слиянием

Два подхода: проверка числа на простоту

Рассматриваем задачу: максимум и минимум списка