FrontendInterviews.dev

Loading problem…

94. Best Time to Buy and Sell Stock

Easy•
Acceptance: 100.00%
•
🔓3/3 Pro unlocks today

You're building a trading feature that needs to find the maximum profit from buying and selling a stock. Given daily prices, find the best day to buy and sell.

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.

Requirements

1. Basic Functionality

  • Find maximum profit from one buy and one sell
  • Must buy before selling
  • Return 0 if no profit possible
  • O(n) time complexity

Example Usage

maxProfit([7,1,5,3,6,4]); // 5
// Buy on day 2 (price=1) and sell on day 5 (price=6), profit = 6-1 = 5

maxProfit([7,6,4,3,1]); // 0
// No profit possible, prices only decrease

Real-World Context

This problem models real trading scenarios:

  • Stock trading: Find best buy/sell timing
  • Price analysis: Maximum profit calculation
  • Optimization: Single pass solution
  • Dynamic programming: Track minimum price

Constraints

  • 1 <= prices.length <= 10^5
  • 0 <= prices[i] <= 10^4
  • Must buy before selling
  • Only one transaction allowed