[Algorithmic Puzzles][1], by Anany Levitin & Maria Levitin.  

> Houses puzzles for all skill levels from readers with only middle
> school mathematics to seasoned puzzle solvers.

Starts with some Mathematical and Algorithmic background, sorts problems though Easy, Medium and Hard, gives both Hints and Solutions so it's great for self study.


  [1]: https://en.wikipedia.org/wiki/Algorithmic_Puzzles