• Two pointers: one input, opposite ends
  • Two pointers: two inputs, exhaust both
  • Sliding window
  • Build a prefix sum
  • Efficient string building
  • Linked list: fast and slow pointer
  • Reversing a linked list
  • Find number of subarrays that fit an exact criteria
  • Monotonic increasing stack
  • Binary tree: DFS (recursive)
  • Binary tree: DFS (iterative)
  • Binary tree: BFS
  • Graph: DFS (recursive)
  • Graph: DFS (iterative)
  • Graph: BFS
  • Find top k elements with heap
  • Binary search
  • Binary search: duplicate elements, left-most insertion point
  • Binary search: duplicate elements, right-most insertion point