Машина времени запаса
Вы получили доступ к набору данных, tomorrowStocksкоторый содержит цены на акции от вашего любимого бизнеса на NASDAQ. Этот набор данных является контейнером, индексированным по минутам после открытия. Каждый индекс содержит цену акции в то время.
// Assume the stock market opens at 9:30AM EDT
// tomorrowStocks[] contains the prices of your target stock.
// If the stock is $22 @ 10:30AM EDT
tomorrowStocks[60] == 22
Выход
Ваша задача состоит в том, чтобы определить наилучший возможный исход 1 purchaseи 1 saleиз 1 stockиз данного набора данных.
Gotchas
- Вы должны купить и продать ровно 1 акцию.
- Вы не можете покупать и продавать в одном и том же временном интервале.
- Вы должны купить, прежде чем продать.
Тестовые данные
[1,2,3,4,5] # 4
[1,99,2,105] # 104
[99,1,99,100] # 99
[99,1,1,2,1,3] # 2
[5,4,3,3,1] # 0
[5,4,3,1] # -1
[5,2,1] # -1
[5,4,1] # -1
[55,45,20,1] # -10
[5,1] # -4
[10,7,5,1] # -2
[7] # Invalid input -- assume size >= 2
Это код-гольф ; отправьте кратчайший ответ на вашем любимом языке!
[5,4,3,1]вы можете , но для 5и продают за 4или покупать 4и продавать для того 3чтобы получить оптимальный результат -1.