JZ-075-股票的最大利潤

雄獅虎豹發表於2022-03-24

股票的最大利潤

題目描述

可以有一次買入和一次賣出,買入必須在前。求最大收益。

  • 例子:題目描述 [7, 1, 5, 3, 6, 4]
  • 最大利潤為 6 - 1 = 5

題目連結: [股票的最大利潤]()

程式碼

/**
 * 標題:股票的最大利潤
 * 可以有一次買入和一次賣出,買入必須在前。求最大收益。
 * 例子:題目描述 [7, 1, 5, 3, 6, 4]
 * 最大利潤為 6 - 1 = 5
 */
public class Jz75 {


    /**
     * 使用貪心策略,假設第 i 輪進行賣出操作,買入操作價格應該在 i 之前並且價格最低。
     */
    public int maxProfit(int[] prices) {
        if (prices == null || prices.length == 0) {
            return 0;
        }
        int soFarMin = prices[0];
        int maxProfit = 0;
        for (int i = 1; i < prices.length; i++) {
            soFarMin = Math.min(soFarMin, prices[i]);
            maxProfit = Math.max(maxProfit, prices[i] - soFarMin);
        }
        return maxProfit;
    }

    public static void main(String[] args) {
    
    }
}
【每日寄語】 融四歲,能讓梨;弟於長,宜先知。

相關文章