01
02
03
04
05
06
07
08
09
10
11
A
A2Z Sheet

437. Best Time to Buy and Sell Stock

Easy
Step 16: Dynamic Programming [Patterns and Problems]›DP on Stocks

Best Time to Buy and Sell Stock

EasyFunction: maxProfit()
ASCI Mission Breakdown • Simple as Hell
"Master Best Time to Buy and Sell Stock: Take `prices` (number[]), execute an optimal dp on stocks strategy, and return number with clean edge-case handling."
Real-World Metaphor:

Think of Best Time to Buy and Sell Stock as an everyday real-world challenge: you receive input data, inspect its elements in sequence without making unnecessary duplicate passes, and transform the collection to reach the exact target without wasting computer memory.

Interactive Visual WalkthroughDP-GRID
Step 1 / 3
StatusInitialized
ModeScanning
Evaluating

1. Initialize State for Best Time to Buy and Sell Stock

Load inputs and initialize algorithmic registers.

How to Think About This (Mental Model)

  1. Unpack the problem parameters (`prices` (number[])) and clarify what is given vs what must be returned.
  2. Identify the optimal data structure or pattern (e.g. pointers, hash map, or stack) to avoid redundant recalculations.
  3. Walk through state transitions, handle edge cases (empty collections, single items, negative numbers), and return the verified result.

You are given an array `prices` where `prices[i]` is the price of a given stock on the `i`th 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`.

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: In this case, no transactions are done and max profit = 0.

Constraints

  • 1 <= prices.length <= 10^5
  • 0 <= prices[i] <= 10^4
Topic Tags:
Dynamic Programming [Patterns and Problems]DP on StocksmaxProfit
14px
Ln 1:Col 1
8 lines•115 chars
Spaces: 2•UTF-8
JS(Node v20.12)