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 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.
Sample Input
prices = [7,1,5,3,6,4]
Sample Output
5
Constraints
- 1 <= prices.length <= 10^5
- 0 <= prices[i] <= 10^4
Test Cases
Case 1
Args: [[7,1,5,3,6,4]]
Expected: 5
Topics
Track the minimum price seen so far as you iterate. At each step, compute the profit if you sold today and update the maximum profit accordingly.
function maxProfit(prices) {
let minPrice = Infinity;
let maxProfit = 0;
for (const price of prices) {
minPrice = Math.min(minPrice, price);
maxProfit = Math.max(maxProfit, price - minPrice);
}
return maxProfit;
}
Time: O(n) Space: O(1)
Saved in this browser only. Private to you.