Spiral 50
Algorithms and data structuresLearn algorithms and data structures for coding interviews efficiently, with the 50 most common problems.
4 chapters | 17 lessons | 50 problems
How to learn efficiently
Solve only 50 problems
You don't need to solve 1,000 problems to prepare for an interview. This study contains only 50, but they cover all the data structures and patterns you need, in proportion to how often each one comes up in interviews.
Follow the roadmap
Besides the raw problems, there is a complete roadmap, from A to Z, that explains every technique in a separate lesson. All the techniques and problems are ordered by difficulty, and each problem comes only after the technique it needs has been explained.
Learn to recognise patterns
Other problem lists like NeetCode 150 or Blind 75 group problems by a specific technique. The issue with this approach is that you know which technique to use before you read the problem. In this study, problems are grouped into four broader chapters, and a problem might need any technique from earlier chapters. This way you learn to recognise the patterns in any problem.
Reinforce what you learn
This study uses spiral learning. Every technique you learn comes back multiple times in later problems, combined with harder ideas. You build a techniques basket along the way, and everything in it may need to be revisited, so what you learn sticks through repetition.
Hash table is explained in chapter 2 and comes back in 10 problems
Chapters
Fundamentals
Arrays and strings data structures with core techniques like finding a brute force approach, measuring algorithm complexity, sorting and bit manipulation.
- Big-O notation
- Combinatorics I
- Arrays and strings
- Bit manipulation
- 5 problems
Helper data structures and core patterns
Data structures (hash tables, stacks, queues, heaps) and patterns (two pointers, binary search, prefix sums, sliding window) commonly used to optimise brute force solutions.
- Hash tables
- Stacks and queues
- Heaps
- Core patterns
- 15 problems
Linked lists, trees and graphs
How to represent these data structures, and how to search and traverse them.
- Recursion
- Linked lists
- Trees
- Graphs
- Advanced graph algorithms
- 15 problems
Backtracking, greedy and dynamic programming
How to generate every candidate with backtracking and how to optimise the solution with greedy algorithms and dynamic programming.
- Combinatorics II
- Backtracking
- Greedy and dynamic programming
- 15 problems
Spiral 50 is coming soon. Join the waitlist to get free early access when it's ready.