Menu
CoddyTech

Best Time to Buy and Sell Stock

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

Функция

maxProfit(prices: integer-array) → integer
pricesinteger-array
цена акции в каждый день, по порядку
Возвращаетinteger
наибольшая прибыль от одной покупки и последующей продажи или 0

Ограничения

  • 1 ≤ prices.length ≤ 105
  • 0 ≤ prices[i] ≤ 104
  • Вы совершаете не более одной сделки и продаёте в день, который наступает позже дня покупки.

Примеры

Ввод
prices = [7, 2, 5, 9, 1, 4]
Вывод
7
Пояснение
Купи в день 1 по цене 2 и продай в день 3 по цене 9, получив прибыль 7. Самая низкая цена — 1 в день 4 — встречается после цены 9, поэтому лучшая продажа после неё принесёт только 3.
challenge icon

Дополнительный вопрос

Что, если можно совершать сколько угодно сделок, держа при этом не более одной акции одновременно?

Сбросить код
def maxProfit(prices):
    # Напишите код здесь

Тест #1

Тест #2

Аргумент

prices = [7, 2, 5, 9, 1, 4]

Ожидаемый вывод

7