LeetCode 121. Best Time to Buy and Sell Stock
Question
You are given an array prices
where prices[i]
is the price of a given stock on the ith
day.
You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to sell that stock.
Return the maximum profit you can achieve from this transaction. If you cannot achieve any profit, return 0
.
Example 1:
1 | Input: prices = [7,1,5,3,6,4] |
Example 2:
1 | Input: prices = [7,6,4,3,1] |
Constraints:
1 <= prices.length <= 105
0 <= prices[i] <= 104
Source: https://leetcode.com/problems/best-time-to-buy-and-sell-stock/
Solution
The best time to buy and sell can be interpreted as two forms:
- the lowest price we have ever seen to buy + current price to sell
- current price to buy + the highest price in the future to sell
To solve these problems of a flexible window, one key point is to get a reliable value of one end first and traverse the other end.
In the following implementation, we choose the first form so we traverse the array from the left to the right.
1 | public int maxProfit(int[] prices) { |
LeetCode 121. Best Time to Buy and Sell Stock
http://yenotes.org/2022/01/18/LeetCode-121-Best-Time-to-Buy-and-Sell-Stock/