Since the question was tagged with "algorithms", I will give an algorithms recommendation. (You don't say specifically what type of problems you want to solve, but you do mention "algorithmic complexity.") For a book that was written to motivate the theory of algorithms from real-world problems, I would recommend Algorithm Design by Kleinberg and Tardos. It discusses many problem-solving methods. From the website for the book:
Algorithm Design introduces algorithms by looking at the real-world problems that motivate them. In a clear, straight-forward style, Kleinberg and Tardos teaches students to analyze and define problems for themselves and from this, to recognize which design principles are appropriate for a given situation. The text encourages a greater understanding of the algorithm design process and an appreciation of the role of algorithms in the broader field of computer science.
Amazon link: http://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321295358