In my experience, you can't learn that skill by watching others. It is a practice, like playing chess, or writing Math proofs. So IMHO the only way is to train. Start with simple problems, and continue from there. Bang your head against problems for a few hours before looking up the solution. Over time, you will get better.
Disclaimer: I'm myself not very good at algorithmic puzzles. For a job application I took a vacation to train solving coding tasks, and was getting better every day. I got that job, but guess that for a Google application I'd rather have to train for 3 months.
Disclaimer: I'm myself not very good at algorithmic puzzles. For a job application I took a vacation to train solving coding tasks, and was getting better every day. I got that job, but guess that for a Google application I'd rather have to train for 3 months.