Algorithms

Algorithm practice sharpens decomposition, complexity analysis, and implementation discipline. It does not replace production engineering: system design, testing, Git, dependency management, deployment, and interface work still decide whether software survives contact with users.

This track is organized by pattern, not by problem number. The current practice corpus lives in the Python solutions series; pattern-grouped lessons (trees, graphs, heaps, dynamic programming, greedy, backtracking) are planned next.

Python Solutions

Planned lessons (27)

Wave 2 — breadth (provisional roadmap) — 27 lessons

analysis

  • Big-O Beyond the Basics concept · beginner · M Growth rates, constants, and the analysis of real code rather than toy loops.
  • Amortized Analysis concept · intermediate · S Why appends are cheap on average: paying for work over time.

patterns

  • Two Pointers practice · beginner · M Converging indices on sorted or paired structure.
  • Sliding Window practice · intermediate · M Subarray and substring problems without re-scanning.
  • Hash Map Patterns practice · beginner · M Trading space for time: complements, frequencies, and indices.
  • Prefix Sums practice · beginner · S Range queries in constant time after linear prep.
  • Binary Search and Its Variants practice · intermediate · M First-true boundaries, not just finding a value.
  • Recursion and the Call Stack concept · beginner · M Base cases, stack frames, and converting to iteration.
  • Divide and Conquer concept · intermediate · M Splitting problems until they're trivial, then merging answers.
  • Backtracking practice · intermediate · M Building candidates and undoing mistakes.
  • Stack and Queue Patterns practice · beginner · M Matching, nesting, and processing order as algorithmic tools.
  • Linked List Patterns practice · intermediate · M Fast and slow pointers, reversal, and in-place surgery.
  • Interval Problems practice · intermediate · M Sorting by start, sweeping, and merging.

structure-internals

  • Sorting Internals concept · intermediate · M Quicksort, mergesort, and why the standard library wins.

trees-graphs

  • Tree Traversals concept · intermediate · M Preorder, inorder, postorder, and level order — and when each matters.
  • Binary Search Trees concept · intermediate · M Ordered structure, in-order facts, and the cost of imbalance.
  • Heaps and Priority Queues concept · intermediate · M The top-k structure behind schedulers and Dijkstra.
  • Tries practice · intermediate · M Prefix trees for strings and autocomplete.
  • Graph Representations concept · intermediate · S Adjacency lists, matrices, and choosing by operation.
  • BFS and DFS concept · intermediate · M The two ways to walk a graph, and what each discovers.
  • Topological Sort practice · intermediate · S Ordering dependencies, from build systems to course schedules.
  • Dijkstra and Shortest Paths practice · advanced · M Weighted shortest paths with a priority queue.
  • Union-Find practice · intermediate · M Disjoint sets, near-constant merges, and connectivity in bulk.

dynamic-programming

  • Dynamic Programming: The Idea concept · intermediate · M Overlapping subproblems and optimal substructure, recognized on sight.
  • One-Dimensional DP practice · intermediate · M Fibonacci to house robber: state, transition, order.
  • Two-Dimensional and String DP practice · advanced · M Edit distance, LCS, and grid paths.
  • Greedy Algorithms concept · intermediate · M When local choices are globally safe: exchange arguments.