Вопрос: Предположим, у вас есть массив, для которого элемент 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; } }
Больше постов ищите здесь.
Ура и Чао!