Data structures and algorithms, explained in plain English.
23 concepts that come up most in interviews. Each one gives you a direct answer, a working code example, the complexity and the traps. Free to read, no sign-up and no card.
23 guides · start with Big O Notation if you are new
Searching1 guide · 6 min
Algorithms1 guide · 7 min
Patterns5 guides · 31 min
- Two Pointers
Two pointers is an algorithmic pattern that uses two indices to traverse a data structure, usually an array or string, instead of one.
6 min - Sliding Window
The sliding window is an algorithm pattern that maintains a moving sub-range over a linear structure like an array or string.
6 min - Dynamic Programming
Dynamic programming is an algorithmic technique that solves a complex problem by breaking it into overlapping subproblems, solving each one only once, and storing the result to reuse later.
7 min - Backtracking
Backtracking is a general technique for solving problems by building a solution one choice at a time and abandoning a partial solution the moment it cannot lead to a valid answer.
6 min - Greedy Algorithm
A greedy algorithm builds a solution step by step, always taking the choice that looks best right now, the locally optimal option, and never undoing it.
6 min
Foundations1 guide · 7 min
Complexity1 guide · 7 min
Data Structures10 guides · 55 min
- Hash Table
A hash table is a data structure that stores key-value pairs and finds any value in O(1) time on average.
6 min - Array start here
An array is a collection of elements stored side by side in contiguous memory, each reachable by a numeric index.
6 min - Linked List
A linked list is a linear data structure where each element, called a node, stores a value and a pointer (reference) to the next node.
7 min - Stack
A stack is a linear data structure that stores items in last-in, first-out (LIFO) order: the most recently added element is the first one removed.
5 min - Queue
A queue is a linear data structure that stores items in first-in, first-out (FIFO) order: you add elements at the back (enqueue) and remove them from the front (dequeue).
6 min - Binary Tree
A binary tree is a hierarchical data structure made of nodes, where each node holds a value and links to at most two children, called left and right.
6 min - Heap
A heap is a complete binary tree that satisfies the heap property: in a min-heap every parent is smaller than or equal to its children, so the minimum sits at the root (a max-heap flips this).
7 min - Graph
A graph is a data structure that models relationships as a set of vertices (nodes) connected by edges (links).
6 min - Trie
A trie, or prefix tree, stores strings by their characters: every node is one character and every word is a path from the root.
3 min - Union-Find
Union-Find, also called disjoint set union (DSU), keeps track of which items belong to the same group while groups keep merging.
3 min
Graph Algorithms3 guides · 15 min
- Breadth-First Search
Breadth-first search (BFS) is a graph traversal algorithm that explores a graph level by level, visiting all neighbors of a node before moving deeper.
6 min - Depth-First Search
Depth-first search (DFS) is a graph and tree traversal algorithm that explores as far as possible along each branch before backtracking.
6 min - Topological Sort
A topological sort puts the nodes of a directed acyclic graph in an order where every edge points forward: if A must happen before B, A comes first.
3 min
No guide matches that yet. Try another word, or ask a mentor on a free call.
The written guides are one half. The platform is the other.
Watch the concept as a story, write the code in a browser IDE and defend it in a spoken mock round. The free plan needs no card.
- Story lessonsConcepts as animated stories. Twenty open on the free plan.
- A browser IDEWrite, run and test real code. Full access, free.
- AI mock roundsSpoken rounds that interrupt and follow up. Three a week.
- A readiness scoreEvery attempt feeds one number, weakest axis named.