Algorithms track

Algorithms & data structures

A step-by-step path through algorithms and data structures. Each lesson starts with a concrete problem, traces the idea by hand, then shows the code in JavaScript and Python.

0 of 50 lessons complete50 published ยท 10 modules

Recommended order. Go top to bottom. Modules 1 to 3 are the base everything else stands on. After that, trees and graphs can be done in either order, but finish module 8 before dynamic programming.

  1. Foundations

    5 lessons

    What an algorithm is, how to measure one, and how to start when you are stuck.

    1. What Is an Algorithm12 min
    2. Big-O Notation14 min
    3. Recursion15 min
    4. Math for Algorithms16 min
    5. How to Approach a Problem18 min
  2. Arrays, Strings & Hashing

    6 lessons

    The everyday tools: arrays, strings, hash maps, and the patterns built on them.

    1. Arrays13 min
    2. Strings13 min
    3. Hash Tables16 min
    4. Two Pointers15 min
    5. Sliding Window15 min
    6. Prefix Sums15 min
  3. Linked Lists, Stacks & Queues

    4 lessons

    Structures where order is the whole point.

    1. Linked Lists18 min
    2. Stacks14 min
    3. Queues and Deques14 min
    4. Monotonic Stack16 min
  4. Sorting & Searching

    7 lessons

    How to put things in order, and how order lets you find things fast.

    1. Simple Sorts16 min
    2. Merge Sort16 min
    3. Quicksort16 min
    4. Heap Sort15 min
    5. Counting and Radix Sort17 min
    6. Binary Search17 min
    7. Binary Search on the Answer16 min
  5. Graphs: Traversal

    4 lessons

    Model the problem as a graph, then walk it.

    1. Graph Basics15 min
    2. Breadth-First Search16 min
    3. Depth-First Search16 min
    4. Topological Sort15 min
  6. Graphs: Paths & Connectivity

    4 lessons

    Shortest paths, connected groups and cheapest networks.

    1. Union-Find16 min
    2. Dijkstra's Algorithm17 min
    3. Bellman-Ford and Floyd-Warshall18 min
    4. Minimum Spanning Trees18 min
  7. Problem-Solving Techniques

    5 lessons

    General strategies that turn into code over and over.

    1. Backtracking18 min
    2. Greedy Algorithms16 min
    3. Divide and Conquer16 min
    4. Intervals15 min
    5. Bit Manipulation16 min
  8. Advanced Topics

    3 lessons

    Tools for when the basics are not fast enough.

    1. String Matching22 min
    2. Segment Trees and Fenwick Trees22 min
    3. Designing Data Structures20 min