121. Best Time to Buy and Sell Stock
You are given an array prices where prices[i] is the price of a given stock on the i^th day
ArrayExample 1:
- Input:
prices = [7,1,5,3,6,4] - Output:
5 - Explanation: Buy on day
2(price =1) and sell on day5(price =6), profit =6-1 = 5. Note that buying on day2and selling on day1is not allowed because you must buy before you sell.
Example 2:
- Input:
prices = [7,6,4,3,1] - Output:
0 - Explanation: In this case, no transactions are done and the max profit =
0.
Constraints:
1 <= prices.length <= 10^50 <= prices[i] <= 10^4
Approach
Solution
class Solution:
def maxProfit(self, prices: List[int]) -> int:
left = min(prices)
for right in range(len(prices)):
while curr > left:
curr -= prices[left]
left += 1
ans = max(ans, curr)
return ans