Two pointers uses two indices to traverse a data structure, reducing time complexity from to .
The core insight: Instead of nested loops where the inner loop starts from scratch, move pointers based on the current state. Each pointer moves at most times, giving total.
I'll teach you three patterns: opposite direction (converging), same direction (fast and slow), and sorted array pairing. You'll learn when each applies and how to identify two-pointer problems in interviews.