Напишите функцию find_max, которая принимает список чисел в качестве аргумента и возвращает максимальное значение из списка.
Ответ нейросети
05 февраля 2026 13:48
Вот подробное решение задачи с пошаговыми объяснениями и примером использования.
Цель: понять, как реализовать функцию find_max, которая возвращает максимум в списке чисел.
- Простейшая реализация (ручной поиск максимума)
- Шаг 1: проверить, что список не пустой. Если пустой, нельзя найти максимум, можно поднять исключение.
- Шаг 2: взять первый элемент как начальное максимальное значение.
- Шаг 3: пройтись по остальным элементам списка и обновлять максимум, когда встречается элемент больше текущего максимума.
- Шаг 4: вернуть найденное максимальное значение.
Код: def find_max(nums): """Возвращает максимальное число в списке nums. Если список пустой, возбуждает ValueError.""" if not nums: raise ValueError("Список не должен быть пустым")
max_val = nums[0]
for num in nums[1:]:
if num > max_val:
max_val = num
return max_val
Пояснения:
- max_val инициализируется первым элементом списка. Это важно, чтобы корректно работать с отрицательными числами.
- Цикл по всем элементам кроме первого сравнивает каждое число с текущим максимумом и при необходимости обновляет его.
- Время выполнения: O(n), где n — длина списка. Память: O(1) дополнительной памяти.
- Альтернатива с использованием встроенной функции max (короткая версия)
- Если разрешено использовать готовые средства языка, можно получить максимум одной строкой.
Код: def find_max(nums): if not nums: raise ValueError("Список не должен быть пустым") return max(nums)
Пояснения:
- max(nums) делает ту же работу внутри, но реализации скрыты от пользователя.
- Сложность по времени та же (O(n)), по памяти — O(1) дополнительной памяти.
Примеры использования print(find_max([3, 1, 4, 2])) # 4 print(find_max([-5, -1, -3, -1])) # -1 print(find_max([7])) # 7
Примечания
Если нужен вариант без выброса исключения для пустого списка, можно вернуть None вместо исключения: def find_max(nums): if not nums: return None max_val = nums[0] for num in nums[1:]: if num > max_val: max_val = num return max_val
В задачах средней школы чаще принимается решение с явной инициализацией максимума и перебором элементов, как в первом варианте.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



