Контест Middle Скользящее окно спрашивают часто обновлено
Сумма максимумов всех окон длины k
Условие
Датчик нагрузки пишет n замеров. Для каждого окна из k подряд идущих замеров найдите максимум и выведите сумму этих максимумов по всем n − k + 1 окнам.
Ввод: в первой строке n и k (1 ≤ k ≤ n ≤ 2500), во второй n чисел (|aᵢ| ≤ 10⁹).
Вывод: одно число: сумма максимумов окон (может не поместиться в 32 бита).
Пример 1
Ввод:
8 3
1 3 -1 -3 5 3 6 7
Вывод:
29
Пример 2
Ввод:
3 1
-1 -2 -3
Вывод:
-6
Как подойти
Подсказки: 2
- Элемент, левее которого стоит больший или равный ему более поздний, никогда не станет максимумом.
- Храните индексы в деке так, чтобы значения убывали.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Минимальное окно, содержащее все символы шаблона
Следующий вопрос
Поиск анаграммы в строке
Термины по теме
Ещё по теме «Скользящее окно»
- Самая длинная серия единиц с k заменами
- Перестановка как подстрока
- Самая длинная серия после k замен
- Самая длинная подстрока без повторов
- Максимальная сумма окна длины k
- Максимум гласных в окне
- Кратчайший подмассив с суммой ≥ target
- Самая короткая подстрока с k различными