Ctrl K

Самая прибыльная серия дней

Средняя
Магазин записывал дневную прибыль в массив changes: changes[i] — прибыль за i-й день, убыток записан отрицательным числом. Найдите непрерывную серию подряд идущих дней (хотя бы из одного дня) с наибольшей суммарной прибылью и верните эту сумму. Решение за O(n²) очевидно — попробуйте за один проход.
Пример 1
changes=[3, -5, 4, -1, 6, -8, 2] → 9

Лучшая серия — дни с индексами от 2 до 4: 4 − 1 + 6 = 9.

Пример 2
changes=[-4, -2, -7] → -2

Все дни убыточные; отрезок обязан быть непустым, поэтому выбираем один день с наименьшим убытком: −2.

Пример 3
changes=[6, -1, 2] → 7

Выгоднее взять все три дня: 6 − 1 + 2 = 7.

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

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