Your best bet for improving your problem solving is not reading books, but just doing lots of practice programs.
https://codegolf.stackexchange.com/ is a site you can look at.
These books will give you a large list of problems that if you get one of them and work through it you will be in a good mindset for problem solving (These books are not free):
Some free sites:
It is very hard to learn how to problem solve just from a book, as all people think differently. Try doing questions for fun and you will learn to problem solve.