LeetCode Solutions
121. Best Time to Buy and Sell Stock
Time: $O(n)$ Space: $O(1)$
class Solution {
public:
int maxProfit(vector<int>& prices) {
int sellOne = 0;
int holdOne = INT_MIN;
for (const int price : prices) {
sellOne = max(sellOne, holdOne + price);
holdOne = max(holdOne, -price);
}
return sellOne;
}
};
class Solution {
public int maxProfit(int[] prices) {
int sellOne = 0;
int holdOne = Integer.MIN_VALUE;
for (final int price : prices) {
sellOne = Math.max(sellOne, holdOne + price);
holdOne = Math.max(holdOne, -price);
}
return sellOne;
}
}
class Solution:
def maxProfit(self, prices: List[int]) -> int:
sellOne = 0
holdOne = -math.inf
for price in prices:
sellOne = max(sellOne, holdOne + price)
holdOne = max(holdOne, -price)
return sellOne