题目链接

Leetcode

题目描述

可以有一次买入和一次卖出,买入必须在前。求最大收益。

解题思路

使用贪心策略,假设第 i 轮进行卖出操作,买入操作价格应该在 i 之前并且价格最低。

class Solution {
   
    public int maxProfit(int[] prices) {
   
        if (prices==null || prices.length==0) return 0;
        int sofarMin = prices[0], max = 0;
        for (int i=1;i<prices.length;i++) {
   
            if (prices[i] < sofarMin) sofarMin = prices[i];
            else max = Math.max(max, prices[i]-sofarMin);
        }
        return max;
    }
}