max_subarray_sum: максимальная сумма непустого подотрезка
Напишите функцию max_subarray_sum(nums: list[int]) -> int.
Вход. Список целых чисел nums — могут быть отрицательные и нули.
Выход. Максимальная сумма непрерывного непустого подотрезка.
Поведение на краевых входах.
- Пустой список — вернуть
0(подотрезка нет вовсе, это отдельная договорённость). - Один элемент — вернуть его самого, даже если он отрицательный.
- Если все элементы отрицательные, ответ равен максимальному элементу: подотрезок обязан быть непустым, поэтому вернуть
0нельзя. Для[-5, -2, -9]ответ-2.
Требование к сложности. Один проход по списку, O(n).
заготовка решения
def max_subarray_sum(nums: list[int]) -> int:
# ваш код
pass