← Back to courses

Data Structures & Algorithms

Problems grouped by technique · Interactive step-through visualizers · Editable JavaScript solutions

01Arrays & Hashing- Trade memory for speed: keeping what you have seen in a map or set means a lookup is one step instead of another pass over the data
02Two Pointers- Two positions moving through the data replace a loop inside a loop - usually once the data is sorted
03Sliding Window- Slide a stretch of the input along, growing and shrinking it, instead of re-checking every possible stretch from scratch
04Stack- Last in, first out: the most recent thing you opened is the first thing that has to close
05Linked List & Design- Put two data structures together so that every operation stays fast
06Binary Search- Cut the range you are searching in half at every step, when the answer sits somewhere in a sorted range
07Recursion- Structures that contain themselves: solve the smallest case directly, then trust the same function to handle each smaller part
Learn the technique, not the problem. Each group is a pattern that transfers: once two pointers clicks on 3Sum, it is the same move on any sorted-array question.