
/** 貪心:每次選取更低的價格買入,遇到高于買入的價格就出售(此時不一定是最大收益)。* 使用buy表示買入股票的價格和手續費的和。遍歷數組,如果后面的股票價格加上手續費* 小于buy,說明有更低的買入價格更新buy。如果大于buy出售該股票(此時不一定為最大收益)* 所以令buy等于該股票價格即buy = prices[i], 如果prices[i+1]大于buy,出售該 prices[i+1]相當于* prices[i+1] - prices[i] 在加上之前的利益 prices[i] - buy.等于在 i 天沒做任何操 作。** @auther start* @create 2023-12-24 22:14*/
public class L714 {public int maxProfit(int[] prices, int fee) {int n = prices.length;//保存獲利的錢數int profit = 0;//初始化buyint buy = prices[0] + fee;for (int i = 1; i < n; i++) {//這種情況說明有更低的價格出現更新buyif (prices[i] + fee < buy) {buy = prices[i] + fee;} else if (prices[i] > buy){ // 高于buy出售股票,并將獲利錢數加到profit中profit += prices[i] - buy;//更新buybuy = prices[i];}}return profit;}
}