Войти Регистрация
Алгоритмы

205. Лучшая смена точки на кольце суток

Средняя

Круглосуточная кофейня обслуживается в Т‑Бизнесе. profit[i] — средняя прибыль за i-й час суток в рублях (выручка минус зарплата смены); ночные часы бывают убыточными.

Сутки — кольцо: после последнего часа идёт снова нулевой. Найдите наибольшую прибыль за непустой отрезок подряд идущих часов длиной не больше суток (отрезок может переходить через полночь).

В работе: Владелец решает, когда держать точку открытой: смена 18:00–02:00 через полночь может оказаться выгоднее дневной, а перебор всех смен по 168 часам недели легко, но по минутам — 10⁸ сумм.

Пример 1

Ввод
profit = [900, -300, -1200, -400, 200, 1100]
Вывод
2200

Через полночь: 200 + 1100 + 900 = 2200.

Пример 2

Ввод
profit = [-50, -20, -70]
Вывод
-20

Все часы убыточны — лучший отрезок из одного часа −20.

Ограничения

  • 1 ≤ n ≤ 2·10⁵
  • −10⁴ ≤ profit[i] ≤ 10⁴
  • Лимит — 2 с на тест (1500 мс).
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def best_shift(profit):
Динамическое программированиеАлгоритм КаданеКольцевой массивцельO(n)

Источник: наша задача на данных Т-Банка. Условие пересказано своими словами.