Particularly about Problem Solving and Algorithms.
Upsolving and Spaced Repetition have helped me in improving my problem solving ability.
When we come across a problem which we can't solve even after spending considerable time, it's better to look at the solution, understand it and try to grasp what it teaches. In my opinion, there's nothing wrong in looking at solution given that we spent enough time trying to solve. It’s nothing but learning new concepts. Sometimes even if we were able to solve the problem it's better to look at posted solutions, this might teach us new ways of solution.
This one, sort of compliments the above technique. Spaced Repetition is nothing but repeating a particular task after some time gap. For instance, in this case, those problems which weren't able to solve the first time and looked at solutions, if we revisit them later, say after 1–2 weeks. If we were able to solve them now, without any help, we have achieved the purpose. We have learnt those concepts. Spaced Repetition helps us get the concepts concrete in our mind. Note the fine line between plainly remembering things and understanding them.
*Upsolving in exactness has slightly different meaning.