Skip to content

Learning Paths

These four sequences order existing problems so each one reuses an idea from the previous one. The decision tree helps you identify a pattern; this page tells you what to learn next.

Use the same loop for every problem

Start from a table entry with your preferred reasoning vocabulary:

just practice-start reacto arrays two_sum
# write source comments, save, continue, implement, and add tests
just practice-next
just practice-test
just practice-finish "one fix"

You can use /reacto arrays two_sum in Copilot Chat instead. Replace reacto with clarp, umpire, or comments without changing the save-and-continue loop.

Choose a path

PathWhat you buildPrerequisitesCore problems
1: FoundationsScanning a sequence with auxiliary statePython fluency, Big-O basics11
2: Graphs & TreesTraversal, ordering, weighted and heuristic searchPath 1, data-structure sheet16
3: DP & BacktrackingRecursion trees, then memoized optimizationPath 1, recursion comfort16
4: Systems & CS FundamentalsBuilding-block structures and their theoryPath 1, system-design sheet15 plus appendix

Start with Foundations. Paths 2 and 3 can follow in either order. Use Path 4 after the basic sequence patterns feel familiar.

Path 1: Foundations

Carry just enough state through one pass: first a map, then pointers, a window, and a stack.

#ProblemWhat it teaches
1arrays/two_sumTrade space for time with a hash map
2arrays/group_anagramsHash a canonical key, not the value
3arrays/product_except_selfPrefix/suffix passes without division
4two_pointers/three_sumSort, then converge two pointers
5two_pointers/container_with_most_waterMove the pointer that can only help
6two_pointers/trapping_rain_waterPointers plus running maxima
7sliding_window/longest_substring_no_repeatVariable window plus a seen-set
8sliding_window/min_window_substringWindow with need/have counts
9stacks_queues/valid_parenthesesLIFO matching
10stacks_queues/daily_temperaturesMonotonic stack for next greater
11stacks_queues/min_stackO(1) minimum with an auxiliary stack

Extensions: strings/valid_anagram, strings/valid_palindrome, and arrays/top_k_frequent.

Path 2: Graphs & Trees

Master traversal on trees, generalize it to graphs, then add ordering, weights, heuristics, and global structure.

#ProblemWhat it teaches
1trees/max_depthRecursion baseline on a tree
2trees/invert_treeStructural recursion
3trees/level_order_traversalBFS with a queue
4trees/validate_bstDFS carrying bounds or inorder state
5trees/trieDesign a multiway prefix tree
6graphs/number_of_islandsGrid DFS/BFS flood fill
7graphs/clone_graphTraversal plus a visited map
8graphs/course_scheduleCycle detection in a DAG
9graphs/topological_sortDependency ordering with Kahn or DFS
10graphs/word_ladderBFS shortest path on an implicit graph
11graphs/dijkstraWeighted shortest path with non-negative edges
12graphs/network_delay_timeApply Dijkstra to a prompt
13graphs/bellman_fordNegative edges and relaxation
14graphs/a_star_searchHeuristic-guided search
15graphs/minimum_spanning_treeGlobal structure plus union-find
16graphs/network_flowMax flow and min cut

Spatial extensions: graphs/geohash_grid and graphs/kd_tree.

Path 3: DP & Backtracking

Trace the recursion tree first. Then recognize repeated subproblems and cache them.

#ProblemWhat it teaches
1recursion/pow_x_nDivide-and-conquer recursion
2recursion/tower_of_hanoiRecursive decomposition
3recursion/generate_parenthesesRecursion under a constraint
4backtracking/subsetsChoose, explore, unchoose
5backtracking/permutationsUsed-set bookkeeping
6backtracking/combination_sumReuse elements plus pruning
7recursion/letter_combinations_phoneCartesian-product backtracking
8backtracking/n_queensConstraint pruning at scale
9dp/climbing_stairsTurn a recurrence into 1D DP
10dp/coin_changeUnbounded DP that minimizes cost
11dp/knapsack0/1 DP with space optimization
12dp/longest_increasing_subseqDP plus binary search
13dp/longest_common_subseq2D DP over two strings
14dp/edit_distance2D DP with three transitions
15dp/constraint_satisfactionDP under explicit constraints
16dp/traveling_salesman_dpBitmask DP

Contrast DP with greedy choices in greedy/merge_intervals, greedy/jump_game, and greedy/interval_scheduling.

Path 4: Systems & CS Fundamentals

Build common structures, then connect them to the theory that explains their costs and failure modes.

#ProblemWhat it teaches
1searching/binary_searchLoop-invariant discipline
2searching/find_minimum_rotatedBinary search on a pivot
3searching/search_rotated_arrayBinary search on transformed input
4sorting/quickselectPartition-based expected O(n) selection
5sorting/merge_sort_inversionsDivide-and-conquer plus counting
6heaps/kth_largestHeap of size k
7heaps/merge_k_sorted_listsk-way merge with a heap
8heaps/task_schedulerHeap plus greedy scheduling
9linked_lists/reverse_linked_listPointer updates
10linked_lists/merge_two_sortedMerge on linked nodes
11linked_lists/lru_cacheHash map plus doubly linked list
12bit_manipulation/single_numberXOR identities
13bit_manipulation/counting_bitsDP over bit patterns
14bit_manipulation/reverse_bitsFixed-width bit operations
15math/sieve_of_eratosthenesPrecompute primes once, amortize over many queries

Appendix reading

Appendix topicRead it alongside
Hash Table Internalsarrays/two_sum, arrays/group_anagrams, linked_lists/lru_cache
Amortized Analysisstacks_queues/daily_temperatures, sorting/quickselect, dynamic arrays
Concurrency & Parallelism Primitivesheaps/task_scheduler
Recursion to Iteration Conversionrecursion/tower_of_hanoi, recursion/pow_x_n, recursion/flatten_nested_list
Fixed-Width & Numeric Pitfallsbit_manipulation/reverse_bits, bit_manipulation/single_number, strings/string_to_integer_atoi

Pace the work

  • Two weeks: finish Foundations, choose Path 2 or 3, then sample the other and Path 4.
  • Four weeks: give each path one week and use extensions for weak signals.
  • Maintenance: let just practice-start reacto draw due problems across topics.

Move forward when you can explain and trace the pattern, not when every row is checked. Revisit due problems through the queue. Use full algorithm pages after the rep when you need a worked reference.

This page lives in git. Anyone can propose an edit. Edit this page View source

Editor-first interview practice. Content is tracked in git, and every packet page links to its source.

built from bb84dc1