Cracking the Coding Interview - Gayle Laakmann McDowell
Note
This is the definitive book on studying for an interview.
Chapter I-VII - Before the Technical Interview
Chapter 1 - Arrays and Strings
Chapter 2 - Linked Lists
Chapter 3 - Stacks and Queues
Chapter 4 - Trees and Graphs
Chapter 5 - Bit Manipulation
Chapter 6 - Brain Teasers
Chapter 7 - Mathematics and Probability
Chapter 8 - Object-Oriented Design
Chapter 9 - Recursion and Dynamic Programming
Chapter 10 - Scalability and Memory Limits
Chapter 11 - Sorting and Searching
Chapter 12 - Testing
Chapter 13 - C and C++
Chapter 14 - Java
Chapter 15 - Databases
Chapter 16 - Threads and Locals
Chapter 17 - Moderate Problems
Chapter 18 - Hard Problems