I've got at home "Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein"
It's chunky and very academic book. I read it mostly when I have to interview.
From my observation, I improve at algorithmic problem-solving every time I study the fundamentals:
- Time complexity / Space complexity: In order to measure the efficiency of an algorithm
- Sort and Search algorithms
- Data structures
Over time for lack of practice I get less good at it, but because I've got the resources, I can always "get in shape" so to speak.