力扣之陣列——買賣股票的最佳時機

weixin_46314604發表於2020-10-16

在這裡插入圖片描述
這道題的轉換為數學問題就是陣列的一前一後如何選出差值最大的值,注意是陣列角標大的元素減去小的元素得到的差值。

我的思想是:在遍歷的過程中,動態的改變陣列中最小的值,當然在遍歷的時候,最大差值也在不斷的更新。

class Solution {
    public int maxProfit(int[] prices) {

        if(prices.length==0){
            return 0;
        }
        int max=0;
        int min=prices[0];
        for(int i=1;i<prices.length;i++){
            if(min<prices[i]){
             if(max<prices[i]-min){
                 max=prices[i]-min;//更新最大差值,也就是題目要求的最大利潤
             }
            }else{
                min=prices[i];//更新陣列中最小的元素的值
            }
        }

        return max;
    }
}

相關文章