toolkit

the syllabus map — every structure and technique, by tier.

data structuresstructure

core
  • array / dynamic array
  • string
  • hash map / dictionary
  • hash set
  • linked list (singly & doubly)
  • stack (LIFO)
  • queue (FIFO)
  • deque (double-ended)
  • heap / priority queue
  • binary tree
  • binary search tree (BST)
  • trie (prefix tree)
  • graph (adjacency list / matrix)
  • matrix / 2D grid
intermediate
  • union-find / disjoint set union
  • monotonic stack
  • monotonic deque
  • balanced BST (AVL / red-black)
  • ordered / sorted container
  • LRU / LFU cache
  • segment tree
  • fenwick tree / binary indexed tree
stretch
  • segment tree with lazy propagation
  • sparse table
  • bloom filter
  • b-tree / b+ tree
  • skip list
  • k-d tree

techniques & patternstechnique

core
  • two pointers — opposite ends
  • two pointers — fast/slow
  • sliding window
  • prefix sums (1D & 2D)
  • binary search on a sorted array
  • binary search on the answer / search space
  • sorting + custom comparators
  • hashing for counting & grouping
  • recursion
  • tree traversals
  • graph DFS
  • graph BFS
  • backtracking
  • dynamic programming
  • 1D DP
  • 2D / grid DP
  • knapsack family
  • interval DP
  • DP on subsequences
  • DP on trees
  • bitmask DP
  • state-machine DP
  • digit DP
intermediate
  • greedy
  • divide and conquer
  • quickselect
  • topological sort
  • dijkstra's
  • bellman-ford
  • floyd-warshall
  • kruskal's / prim's (MST)
  • bit manipulation
  • intervals
  • line sweep / sweep line
  • cyclic sort
  • dutch national flag / 3-way partition
  • boyer-moore majority vote
  • two heaps
  • in-place matrix ops
  • math / number theory basics
stretch
  • trie + DFS combo
  • string matching (KMP / Z / Rabin-Karp)
  • manacher's algorithm
  • meet in the middle
  • LCA via binary lifting / euler tour
  • reservoir sampling
  • a* search