//本题的解题思路为:
//用一个min来记录已经遍历过的数中最小的数
//每次遍历到一个没有遍历过的数时,判断这个数和min的大小关系
//如果这个数比min大说明这个时候可以有利润,否则更新min
//时间复杂度O(N)空间复杂度O(1)
class Solution {
public:
    /**
     * 
     * @param prices int整型vector 
     * @return int整型
     */
    int maxProfit(vector<int>& prices) {
        // write code here
        int res=0;
        int min=prices[0];
        for(int i=1;i<prices.size();i++){
            if(prices[i]>min){
                res=prices[i]-min>res?prices[i]-min:res;
            }
            else{
                min=prices[i];
            }
        }
        return res;
    }
};