Вам дан целочисленный массив prices , где prices[i] — это цена данной акции в i -й день.
Каждый день вы можете решить купить и/или продать акцию. Вы можете держать не более одной акции одновременно. Однако вы можете покупать и продавать акции несколько раз в один и тот же день, при условии, что у вас никогда не будет на руках более одной акции.
Найдите и верните максимальную прибыль, которую вы можете получить.
Примеры
Пример 1
Input: prices = [7,1,5,3,6,4]
Output: 7
Пояснение
Купить по 1, продать по 5 (прибыль 4); купить по 3, продать по 6 (прибыль 3). Всего 7.
Пример 2
Input: prices = [1,2,3,4,5]
Output: 4
Пояснение
Купить по 1, продать по 5, прибыль 4.
Пример 3
Input: prices = [7,6,4,3,1]
Output: 0
Пояснение
Выгодной сделки нет, максимальная прибыль 0.
Решение
Решение
/** * Временная сложность: O(N) * Мы проходим по массиву цен ровно один раз. * * Пространственная сложность: O(1) * Используем только одну переменную totalProfit для накопления результата. */var maxProfit = function(prices) { let totalProfit = 0; for (let i = 1; i < prices.length; i++) { // Если цена сегодня выше, чем вчера — "торгуем" (добавляем разницу в прибыль) if (prices[i] > prices[i - 1]) { totalProfit += prices[i] - prices[i - 1]; } } return totalProfit;};