data structures & algorithms
Everything DSA, in one place
Learn it from scratch, look up a technique mid-problem, or skim a cheatsheet the night before. Pick whichever matches where you are.
Start here if you are new
Learn DSA from zero
A course in short lessons, from Big-O through dynamic programming. Each one ends in the techniques it leads into, with Java you can run.
7 chapters22 lessons
Start lesson 1Look something up
All 200 techniques
The full index by topic and pattern. Every technique has an animated walkthrough, Java code, complexity, and the problems that use it.
18 topics200 techniques
Browse the indexDSA CheatsheetEvery pattern as a trigger word and a one-line tell, for the night before an interview.Java CheatsheetCollections, graph and pattern templates, and the tricks that save time under pressure.The mind mapThe visual view: every topic, pattern and technique, and how they connect.
Guides by topic
Each one gives the patterns in the order worth learning them, what an interviewer is checking, and the techniques underneath.
ArrayStringHash MapStackQueue / DequeLinked ListTreesRecursionHeapGraphsDynamic ProgrammingGreedyMatrixBit ManipulationTrieSortingRange StructuresMath & Number Theory
Which one should I use?
The pairs people mix up, each answered in a sentence before the table.
BFS vs DFSQuicksort vs Merge SortArray vs Linked ListStack vs QueueHashMap vs TreeMapMemoization vs TabulationGreedy vs Dynamic ProgrammingDijkstra vs Bellman-FordBinary Search Tree vs Hash TableHeap vs Binary Search TreeKruskal vs PrimTwo Pointers vs Sliding WindowSegment Tree vs Fenwick TreeRecursion vs Iteration