#121. Best Time to Buy and Sell Stock | LeetCode Python Solution
Problem
LeetCode Problem
- Best Time to Buy and Sell Stock
Python Solution
We use sliding window technique to detect best day to buy and keep track of maximum profit.
class Solution:
def maxProfit(self, prices: List[int]) -> int:
"""
Drawing to walk through the algorithm in different tests
https://excalidraw.com/#json=RdBdGSRzQzSvdtAkNf4f-,hDL4m4lrm6Hzi73m_XCoxQ
"""
# Initialize to buy at day 1 and sell at day 2
buy, sell = 0, 1
# Keep tracking of maximum profit so far
maxProfitSoFar = 0
while sell < len(prices):
profit = prices[sell] - prices[buy]
if profit < 0:
# No profit, but we found a lower price point to buy
buy = sell
else:
# Update maximum profit
maxProfitSoFar = max(maxProfitSoFar, profit)
# Increment sell day by 1
sell += 1
return maxProfitSoFar