Вопрос: Предположим, у вас есть массив, для которого элемент i - это цена данной акции в день i.

Разработайте алгоритм, чтобы найти максимальную прибыль. Вы можете совершить столько транзакций, сколько захотите (т.е. купить одну и продать одну акцию несколько раз).

Примечание. Вы не можете совершать несколько транзакций одновременно (т. е. вы должны продать акции, прежде чем покупать снова).

Вы можете просмотреть полный вопрос здесь.

Подход 1: Решение здесь включает три разных подхода. Давайте проверим однопроходное решение. Код выглядит так -

//Approach 1:
//Runtime: 1ms
//Memory usage: 37MB
class Solution {
    public int maxProfit(int[] prices) {
        int diff = 0;
        for(int i = 1; i<prices.length; i++){
            if(prices[i]>prices[i-1]){
                diff += prices[i]-prices[i-1];
            }
        }
        return diff;
    }
}

Больше постов ищите здесь.

Ура и Чао!