121. Best Time to Buy and Sell Stock
Problem Statement
- You are given an array
prices
where prices[i]
is the price of a given stock on the ith
day.
- You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to sell that stock.\
- Return the maximum profit you can achieve from this transaction. If you cannot achieve any profit, return
0
.
class Solution {
public:
int maxProfit(vector<int>& prices) {
int profit = INT_MIN;
int sellPrice = prices[prices.size()-1];
for (int i = prices.size() -2 ; i >= 0 ; i--){
int currentPrice = prices[i];
if(sellPrice - currentPrice > profit){
profit = sellPrice - currentPrice;
}
if(currentPrice > sellPrice)
sellPrice = currentPrice;
}
// return profit < 0 ? 0 : profit;
if(profit < 0)
return 0;
return profit;
}
};