Вам предоставляется целочисленный массив prices
, где prices[i]
– это цена данной акции на i-й
день.
В каждый день вы можете принять решение о покупке и/или продаже акций. В любой момент вы можете владеть не более чем одной акцией. Однако вы можете купить его, а затем немедленно продать в тот же день.
Найдите и верните максимальную прибыль, которой вы можете достичь.
Входные данные: prices = [7,1,5,3,6,4]
Результат: 7
Пояснение: Покупайте в день 2 (цена = 1) и продавайте в день 3 (цена = 5), прибыль = 5-1 = 4. Затем покупайте в день 4 (цена = 3) и продавайте в день 5 (цена = 6), прибыль = 6-3 = 3. Общая прибыль равна 4 + 3 = 7.
Входные данные: prices = [1,2,3,4,5]
Результат: 4
Пояснение: Покупайте в день 1 (цена = 1) и продавайте в день 5 (цена = 5), прибыль = 5-1 = 4. Общая прибыль составляет 4.
Входные данные: prices = [7,6,4,3,1]
Результат: 0
Пояснение: Нет никакого способа получить положительную прибыль, поэтому мы никогда не покупаем акции для достижения максимальной прибыли в 0.
class Solution {
public:
int maxProfit(vector<int>& prices) {
int profit = 0, len = prices.size();
for (int i = 1; i < len; i++) {
if (prices[i] > prices[i - 1]) {
profit += prices[i] - prices[i - 1];
}
}
return profit;
}
};