Ctrl K

Наибольшая сумма с короткими прыжками

Сложная
Дан массив целых чисел values и число max_hop. Выберите непустой набор элементов массива так, чтобы между любыми двумя соседними выбранными элементами (по порядку в массиве) индексы отличались не больше чем на max_hop. Иначе говоря, если выбраны индексы i < j и между ними ничего не выбрано, то j - i ≤ max_hop. Верните наибольшую возможную сумму выбранных элементов.
Пример 1
values=[4, -7, 3, -1, -2, 6], max_hop=2 → 12

Берём 4, 3, -1 и 6: соседние выбранные индексы 0, 2, 3, 5 отстоят не больше чем на 2. Сумма 12.

Пример 2
values=[-5, -2, -8], max_hop=3 → -2

Все числа отрицательные, а пустой выбор запрещён — берём одно число -2.

Пример 3
values=[9, -20, -20, 9], max_hop=2 → 9
Ограничения
  • 1 ≤ max_hop ≤ len(values) ≤ 10⁵
  • -10⁴ ≤ values[i] ≤ 10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМаксимум в скользящем окне СложнаяТёмный промежуток между фонарями СложнаяКороткий отрезок с нужной суммой СложнаяЛучшая пара близких маяков СложнаяРейсы парома со склада Сложная
загружаем Python…
Вход
values=[4, -7, 3, -1, -2, 6], max_hop=2
Ожидается
12

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 117 тестов на сервере, включая скрытые.