hello I recently came upon this list of categories made by Errichto and I think it's great but I don't know in which order one should start or what are some topics that are must know and others that I can learn later?
categories
Implementation; vectors and sets *
Binary search *
Prime sieve; prime check in O(sqrt(N))
Dynamic Programming — Fibonacci numbers, prefix sums *
Sorting *
Greedy *
Ad-hoc
Graphs — graph representation, BFS, DFS, trees *
Geometry — distance between two points
Bitmasks
Two pointers, sliding window
Data structures — sqrt decomposition, segment trees, Fenwick/BIT, persistent structures, Policy-Based-DS, treaps, BST
Ternary search
Interactive problems
LIS
LCS
Maths
Number theory
Combinatorics, probability, EV
Find & Union
Game theory — NIM, Grundy
Hashing
Strings — KMP, Z
Geometry — cross product, convex hull
Matrix exponentiation
Divide & Conquer
DP optimizations
Graphs * — Dijkstra, FW, SCC, bridges, matching, flows
Randomized algorithms
TRIE
Trees — bottom-up dp, LCA, Centroid decomposition, HLD, DSU
2-SAT
Strings — suffix arrays
Constructive algorithms
Expression parsing
Meet in the middle
FFT
Chinese remainder theorem
Gaussian elimination
Difference array, binary lifting
note: I am not a total beginner I have some knowledge (the starred ones)
thank you for reading
and thank you Errichto for such a useful list :)








