Easiest : O(n) Time, O(1) Space


#1
int Solution::maxProfit(const vector<int> &A) {
    int ans=0;
    int n=A.size();
    if(n<=1)
        return ans;
    int mn=A[0];
    for(int i=1;i<n;i++){
        ans=max(ans,A[i]-mn);
        mn=min(mn,A[i]);
    }
    return ans;
}