Grokking Algorithms, Second Edition by Aditya Y Bhargava

A nice touch in this textbook is the final exam review section at the back.