Given an array of integers prices where prices[i] is the price of a given stock on the i-th day, return the maximum profit you can achieve from this transaction. You may complete at most one transaction (i.e., buy one and sell one share of the stock). If you cannot achieve any profit, return 0.
Example 1:
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.
Example 2:
Input: prices = [7, 6, 4, 3, 1]
Output: 0
Explanation: In this case, no transactions are done and the max profit = 0.
1 <= prices.length <= 10^50 <= prices[i] <= 10^4prices = [7, 1, 5, 3, 6, 4]Output5WhyBuying at price 1 and selling at price 6 yields a profit of 5.prices = [7, 6, 4, 3, 1]Output0WhyNo buying opportunity leads to profit, hence maximum profit is 0.1 <= prices.length <= 10^50 <= prices[i] <= 10^4def max_profit(prices: list[int]) -> int: