import java.util.*;


public class Solution {
    /**
     * 
     * @param prices int整型一维数组 
     * @return int整型
     */
    public int maxProfit(int[] prices) {
        // 比较前后两个数字,diff 最大的那对
        if (prices == null || prices.length <= 1) {
            return 0;
        }


        int minVal = Integer.MAX_VALUE;  //最小的股票价格
        int cur = 1;      //当前指针
        int maxProfit = 0;  //最大利润结果

        // 只记录最大利润,题目不要求记录是哪两天进行买卖
        while (cur < prices.length) {
            //今天比昨天跌了,略过,直到今天比昨天涨
            if (prices[cur] <= prices[cur - 1]) {
                cur++;
                continue;
            }

            //昨天价格即为近期最低点,如果比已存最低点还低,则替换
            if (prices[cur - 1] < minVal) {
                minVal = prices[cur - 1];
            }

            //计算股票买卖利润,如果比maxProfit 大,则替换
            int diff = prices[cur] - minVal;
            maxProfit = Math.max(diff, maxProfit);

            cur++;
        }
        return maxProfit;
    }
}