Скользящее максимальное окно суммы: посчитать максимум суммы k подряд идущих элементов за один проход
Реализуйте функцию max_window_sum(nums, k).
Вход: nums — список целых чисел (могут быть отрицательные и нули), k — целое число.
Выход: целое число — максимальная сумма среди всех подряд идущих отрезков длины ровно k.
Краевые случаи:
- если
k <= 0, верните0; - если
len(nums) < k, верните0(полного окна не существует), в том числе для пустого списка; - если
len(nums) == k, ответ равен сумме всего списка.
Требование по сложности: решение должно работать за O(n) времени — нельзя пересчитывать сумму каждого окна заново вложенным циклом.
Порядок и структура входного списка не меняются: функция не должна модифицировать nums.
заготовка решения
def max_window_sum(nums, k):
# ваш код
pass