Look at a problem and name the structure in its input that a fast method could exploit, then derive the handful of patterns that exploit each one, well enough to write the method correctly from the invariant rather than recall it from memory
The Patterns Behind Most Coding Problems

Most problems are one of about seven shapes. This derives each shape from the structure it exploits, and gives the invariant that makes it correct.
8 lessons, written and corrected before you arrived. Reading them here needs no account. The first reads the whole way through; the others open and then stop, because a page nobody owns cannot tell who is reading it. Starting the course gives you your own copy, where every idea has problems standing under it and you can ask about any sentence.