Ctrl K

Самый большой рост цены

Лёгкая
В массиве prices записана цена акции по дням, prices[i] — цена в день i. Выберите два дня i < j, такие что prices[i] < prices[j], чтобы разность prices[j] - prices[i] была как можно больше. Верните эту разность. Если цена ни разу не поднималась выше какой-либо из прежних цен, верните -1.
Пример 1
prices=[6, 2, 9, 4, 11] → 9

Лучше всего взять день 1 (цена 2) и день 4 (цена 11): рост 9. Пара 6 → 11 даёт только 5.

Пример 2
prices=[8, 8, 5, 3] → -1

Цена ни разу не выросла: равные цены ростом не считаются. Ответ -1.

Пример 3
prices=[10, 1, 3] → 2

10 больше всех последующих цен, поэтому подходит только пара 1 → 3: рост 2.

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

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