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

DSA
Easy
124K views

Direct Answer

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 127 DSA questions