Условие задачи

Дан массив цен на акции, где prices[i] - цена акции в i-й день. Вы хотите максимизировать свою прибыль, выбрав один день для покупки одной акции и выбрав другой день в будущем для продажи этой акции. Необходимо найти максимальную прибыль, которую можно получить от покупки одной акции в любой день и продажи ее в другой день. Если прибыль получить невозможно, то вернуть 0.

Примеры

Пример 1:

prices = [7,1,5,3,6,4]

maxProfit(prices)

Вывод:

5

Объяснение:

Купить акции во второй день по цене 1 и продать их в четверг дня по цене 6, получим прибыль 5.

Пример 2:

prices = [7,6,4,3,1]

maxProfit(prices)

Вывод:

0

Объяснение:

В данном случае невозможно получить прибыль, так как цены на акции падали каждый день.

Решение задачи

  1. Инициализируем переменные minPrice и maxProfit в значение float('inf') и 0 соответственно.
  2. Проходимся по массиву цен на акции. Если текущая цена меньше minPrice, то обновляем minPrice. Иначе, вычисляем текущую прибыль по формуле prices[i] - minPrice и обновляем maxProfit, если она больше текущего значения.