If you are preparing the programming interview for a software engineer position, you might want to look at this book.
Make sure you have basic knowledge of data structure and algorithm, because this book is mostly focus on how to resolve the coding puzzles with existing data structure and algorithm. If you need some refresh of data structure and algorithm, there is a good book you might want to take a look first, "Introduction to Algorithms" by Thomas H. Cormen.
This book has 105 puzzles. Every puzzle contains a detailed explanation and some implementations.