Ctrl K

Сделки с днём отдыха

Средняя
Вы знаете курс монеты на ближайшие дни: rates[i] — её цена в день i. Можно совершать сколько угодно сделок «купить, затем продать», но на руках одновременно бывает не больше одной монеты. Есть правило: на следующий день после продажи покупать нельзя — это день отдыха. Верните наибольшую суммарную прибыль.
Пример 1
rates=[3, 5, 0, 0, 4] → 6

Купить по 3 и продать по 5 (+2), следующий день — отдых, затем купить по 0 и продать по 4 (+4). Итого 6.

Пример 2
rates=[1, 4, 2, 7] → 6

Если продать по 4, день с ценой 2 уйдёт на отдых, и вторую сделку уже не сделать. Выгоднее держать монету до конца: 7 − 1 = 6.

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

Всего один день — заработать нельзя.

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

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