Ctrl K

Сколько угодно сделок

Средняя
Вы знаете курс монеты на ближайшие дни: rates[i] — её цена в день i. Каждый день можно купить монету, продать её или ничего не делать, но одновременно на руках может быть не больше одной монеты. В один и тот же день разрешено и продать, и купить. Сделок может быть сколько угодно. Верните наибольшую суммарную прибыль.
Пример 1
rates=[5, 2, 6, 4, 9, 9] → 9

Купить по 2 и продать по 6 (+4), затем купить по 4 и продать по 9 (+5). Итого 9.

Пример 2
rates=[1, 3, 6, 10] → 9

Курс только растёт: купить в первый день и продать в последний — 10 − 1 = 9. Продавать и снова покупать по пути ничего не добавит.

Пример 3
rates=[8, 8, 3] → 0

Курс не растёт ни разу, торговать невыгодно — ответ 0.

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

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