7
1
5
3
6
4
[0][1][2][3][4][5]
Greedy · one pass tracking the minimum
▸1given prices2min_so_far ← prices[0]3max_profit ← 04for i ← 1 to n − 1:5 max_profit = max(max_profit, prices[i] − min_so_far)6 min_so_far = min(min_so_far, prices[i])7return max_profit
state
- n6