Back to Practice Dashboard
Top 150 InterviewEasy

Best Time to Buy And Sell Stock

Learn how to solve the 'Best Time to Buy And Sell Stock' problem. This detailed resource details brute force and optimized approaches.

Problem Statement

Easy

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.

Write a function maxProfit(prices: List[int]) -> int.

Constraints
  • 1 <= len(prices) <= 10^5
  • 0 <= prices[i] <= 10^4

Examples

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

No profitable transaction is possible since prices only decrease.

Need a Hint?
Maintain a sliding window boundary using two pointers. Expand the right boundary, and contract the left boundary if criteria are violated.
Edge Cases to Watch
  • Empty list or null input variables
  • Single item lists/arrays
  • Extremely large input bounds causing integer or stack overflow

Ready to Solve?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Open in Editor