Ctrl K

Лучший отрезок с нужной разницей концов

Средняя
Дан массив целых чисел values и положительное число gap. Назовём непрерывный отрезок values[i..j] (где i < j) подходящим, если его крайние элементы отличаются ровно на gap: |values[i] - values[j]| == gap. Верните наибольшую сумму элементов среди подходящих отрезков. Если подходящих отрезков нет, верните 0. Сумма может оказаться отрицательной.
Пример 1
values=[3, -2, 8, 6, 1], gap=5 → 9

Подходят отрезки [3, -2, 8] (|3 − 8| = 5, сумма 9) и [6, 1] (|6 − 1| = 5, сумма 7). Лучшая сумма — 9.

Пример 2
values=[4, 4, 4], gap=2 → 0

Все элементы равны, разность концов всегда 0 — подходящих отрезков нет, ответ 0.

Пример 3
values=[-5, -9, -2, -7], gap=4 → -14
Ограничения
  • 2 ≤ len(values) ≤ 10⁵
  • -10⁹ ≤ values[i] ≤ 10⁹
  • 1 ≤ gap ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный отрезок с заданной суммой СредняяОтрезок с суммой, кратной делителю СредняяПоровну орлов и решек СредняяОтрезки с заданной суммой СредняяОкна с заданным числом тревог Средняя
загружаем Python…
Вход
values=[3, -2, 8, 6, 1], gap=5
Ожидается
9

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