What is the best way to buy and sell stock for maximum profit?

DSA
Easy
124K views

This classic problem requires finding the maximum profit achievable by buying and selling a stock once on different days. It tests greedy algorithms and single-pass iteration skills.

Why Interviewers Ask This

This question is designed to test a candidate's grasp of greedy strategies and dynamic programming concepts. Interviewers look for the ability to track the minimum price seen so far while calculating potential profits in a single pass. It reveals how well you can simplify complex financial scenarios into efficient code without unnecessary loops.

How to Answer This Question

Begin by defining the goal: maximize profit = max(price[j] - price[i]) where j > i. Explain the one-pass algorithm where you maintain a running minimum price and update the maximum profit at each step. Avoid nested loops by iterating through the list once. Discuss why this greedy approach works optimally for a single transaction scenario. Conclude with complexity analysis.

Key Points to Cover

  • Single pass iteration
  • Tracking minimum price
  • Greedy strategy application
  • O(n) time complexity

Sample Answer

The optimal solution involves a single pass through the prices array. I initialize a variable for the minimum price seen so far and another for the maximum profit. As I iterate through the prices, I update the minimum pr…

Common Mistakes to Avoid

  • Using nested loops unnecessarily
  • Failing to update minimum price correctly
  • Ignoring the constraint that sell must happen after buy

Sound confident on this question in 5 minutes

Answer once and get a 30-second AI critique of your structure, content, and delivery. First attempt is free — no signup needed.

Try it free

Related Interview Questions

Browse all 89 DSA questions