121. Best Time to Buy and Sell Stock
Easy
Problem:
Determine the maximum profit that can be made from a single transaction.
Input: prices = [7,1,5,3,6,4]
Output: 5
Explanation: Buy on day 2 (price = 1) and sell on day 5 (price = 6), profit = 6-1 = 5. Note that buying on day 2 and selling on day 1 is not allowed because you must buy before you sell.
https://leetcode.com/problems/best-time-to-buy-and-sell-stock/
What to learn:
To prevent a TypeError
during comparison, if the minimum and maximum values are set to the system's maximum and minimum values, any incoming value can be immediately replaced.
Solution:
As the pointer pointing to the current value moves to the right, it calculates the price difference based on the previous low point, and if it is higher, it continues to replace the maximum value. This allows for a solution in O(n) time.
class Solution:
def maxProfit(self, prices: List[int]) -> int:
max_profit = 0
min_price = sys.maxsize
for price in prices:
min_price = min(min_price, price)
max_profit = max(max_profit, price - min_price)
return max_profit
Last updated