Ctrl K

Разрезать на знакопеременные куски

Средняя
Дан массив целых чисел values. Его нужно разрезать на один или несколько непрерывных кусков так, чтобы каждый элемент попал ровно в один кусок. Стоимость куска считается со знаками по очереди: первый элемент куска берётся с плюсом, второй — с минусом, третий — снова с плюсом и так далее. Например, у куска [a, b, c, d] стоимость a - b + c - d. Верните наибольшую возможную сумму стоимостей всех кусков.
Пример 1
values=[2, -3, -1, 5] → 9

Разрежем на [2, -3, -1] и [5]: 2 - (-3) + (-1) = 4, плюс 5 — итого 9.

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

Куски [-4] и [-2, -6]: -4 + (-2 - (-6)) = -4 + 4 = 0.

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

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