Algorithms Illuminated is a DIY book series by Tim Roughgarden, inspired by online courses that are currently running on the Coursera and EdX platforms.
There are four volumes:
Part 1: The Basics Part 2: Graph Algorithms and Data Structures Part 3: Greedy Algorithms and Dynamic Programming Part 4: Algorithms for NP-Hard Problems