This list is designed to be followed serially, from #1 to #225. It starts with the absolute basics and gradually introduces new data structures, algorithms, and more complex variations of old ones. Early problems build the foundation for later problems.
- DO NOT jump around. The order is crucial.
- Struggle is part of the process. If a problem feels hard, it's because it's likely introducing a new idea. Spend time trying to solve it before looking at solutions.
- Master the pattern. After solving a problem, ask yourself: What was the key idea? Is this a two-pointer problem? A binary search? A specific greedy choice?
- Spaced Repetition. Occasionally, go back and re-solve a random problem from 20-30 spots earlier in the list to ensure the concepts stick.