Сложность: easy
Вам дан массив цен, где prices[i] является ценой данной акции в i-й день.
Нужно выбрать день для покупки и день в будущем для продажи, чтобы получить максимальную прибыль. Если прибыли нет — вернуть 0.
Пример:
Input: prices = [7,1,5,3,6,4] Output: 5 👨💻 Алгоритм:
1⃣Поддерживаем переменную
minPrice, обновляем её при каждом снижении цены2⃣Вычисляем потенциальную прибыль на каждом шаге и обновляем
maxProfit3⃣Возвращаем максимальную прибыль после прохода по массиву
😎 Решение:
class Solution {
func maxProfit(_ prices: [Int]) -> Int {
var minPrice = Int.max
var maxProfit = 0
for price in prices {
if price < minPrice {
minPrice = price
} else if price - minPrice > maxProfit {
maxProfit = price - minPrice
}
}
return maxProfit
}
}Ставь 👍 и забирай 📚 Базу знаний