Ctrl K

Сделки с комиссией

Средняя
Вы знаете курс монеты на ближайшие дни: rates[i] — её цена в день i. Можно совершать сколько угодно сделок «купить, затем продать», но на руках одновременно бывает не больше одной монеты. За каждую завершённую сделку (покупка и продажа вместе) платится комиссия commission. Верните наибольшую суммарную прибыль с учётом комиссий.
Пример 1
rates=[2, 8, 6, 10], commission=3 → 5

Одна сделка 2 → 10 даёт 8 − 3 = 5. Две сделки 2 → 8 и 6 → 10 дают (6 − 3) + (4 − 3) = 4 — вторая комиссия съедает выгоду. Ответ 5.

Пример 2
rates=[1, 5, 2, 9], commission=1 → 9

Здесь выгодны две сделки: 1 → 5 и 2 → 9 дают (4 − 1) + (7 − 1) = 9, а одна 1 → 9 — только 7.

Пример 3
rates=[5, 6], commission=2 → 0

Рост на 1 меньше комиссии, поэтому лучше не торговать: 0.

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

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