// TC - O(n) || SC - O(1)
class Solution {
public:
int maxProfit(vector<int>& prices) {
int n = prices.size() - 1, ans = 0, minSoFar = INT_MAX;
for(int i = 0; i < n; ++i) {
minSoFar = min(minSoFar, prices[i]);
ans = max(ans, (prices[i] - minSoFar));
}
return ans;
}
};
// we can use auxilary array and store maxSoFar value