class Solution {
public:
int maxProfit(vector<int>& prices) {
int min_i = -1, max_profit = INT_MIN;
for(int i = 0; i < prices.size(); i++) {
if (min_i == -1 || prices[i] < prices[min_i]) {
min_i = i;
continue;
}
if (prices[i] - prices[min_i] > max_profit) {
max_profit = prices[i] - prices[min_i];
}
}
return max_profit == INT_MIN ? 0 : max_profit;
}
};