Ctrl K

Один разворот ради шероховатости

Сложная
Шероховатостью массива назовём сумму модулей разностей соседних элементов: |values[0] − values[1]| + |values[1] − values[2]| + … + |values[n−2] − values[n−1]|. Дан массив целых чисел values. Разрешается **не более одного раза** выбрать непрерывный подмассив и развернуть его порядок задом наперёд. Верните наибольшую шероховатость, которую можно получить.
Пример 1
values=[1, 5, 6, 2] → 13

Сейчас шероховатость 4 + 1 + 4 = 9. Развернём начало [1, 5]: получится [5, 1, 6, 2] и 4 + 5 + 4 = 13.

Пример 2
values=[1, 2, 3, 4] → 5

Развернём [1, 2, 3]: массив [3, 2, 1, 4] даёт 1 + 1 + 3 = 5.

Пример 3
values=[5, 5, 5] → 0

Все числа равны, никакой разворот не меняет нулевую шероховатость.

Ограничения
  • 2 ≤ len(values) ≤ 3 · 10⁴
  • -10⁵ ≤ values[i] ≤ 10⁵
  • Ответ помещается в 32-битное целое со знаком
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСтроители-клоны СложнаяНаибольшее число, кратное трём СложнаяРазбить числа до порядка СложнаяРастущие группы без повторов СложнаяСловесная дуэль Сложная
загружаем Python…
Вход
values=[1, 5, 6, 2]
Ожидается
13

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