ntree.ai

Spiral 50

Algorithms and data structures

Learn algorithms and data structures for coding interviews efficiently, with the 50 most common problems.

4 chapters | 17 lessons | 50 problems

EasyMediumHard

How to learn efficiently

  1. 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.

  2. 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.

  3. 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.

  4. 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.

16 lessons15 easy25 medium10 hard
Your techniques basket

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.