Вступить в клуб →
средняяpythonСложность и стоимость структур данных

Скользящее максимальное окно суммы: посчитать максимум суммы 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

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела