Grokking Algorithms, Second Edition by Aditya Y Bhargava A nice touch in this textbook is the final exam review section at the back.