Ctrl K

Лучший отрезок на кольце

Средняя
Числа массива values записаны по кругу: после последнего элемента снова идёт первый. Выберите непустой отрезок подряд идущих элементов этого кольца — он может переходить через конец массива в начало — и верните наибольшую возможную сумму. Каждый элемент входит в отрезок не больше одного раза, то есть длина отрезка не превышает len(values).
Пример 1
values=[6, -10, 2, 3] → 11

Отрезок может перейти через конец в начало: 2 + 3 + 6 = 11.

Пример 2
values=[-1, 4, -2, 5, -9] → 7

Лучше всего отрезок без перехода: 4 - 2 + 5 = 7.

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

Все числа отрицательные, а отрезок не может быть пустым — берём -3.

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

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