Free lessons

DSA Lessons

Every lesson in the DSA interview prep course, free to read. Each skill has a lesson that starts simple and gets technical, and a quick revise page. Practice and progress tracking need a free account.

Arrays

The array-based patterns that show up constantly in interviews and in everyday backend code: two pointers, sliding windows, prefix sums, and in-place manipulation.

Core Array Techniques

Linked Lists

Pointer-based traversal and rewiring — the data structure behind every "reverse", "merge", or "detect a cycle" interview question.

Linked List Fundamentals

Trees

Recursive traversal of hierarchical data, the pattern behind file systems, ASTs, and decision structures.

Binary Tree Fundamentals

Binary Search Tree Operations

Graphs

Traversal (BFS/DFS) over arbitrary connections, the pattern behind dependency resolution, network reachability, and routing.

Recursion & Backtracking

Solving a problem by branching into smaller versions of itself, the backbone of combinatorial search.

Dynamic Programming

Turning exponential recursive branching into linear or polynomial time by reusing overlapping subproblem results.

Classic DP Patterns

Searching & Sorting

Exploiting sorted order to search in logarithmic time instead of linear.

Bit Manipulation

Solving problems with bitwise operators directly, often turning an O(n) space problem into O(1).

Strings

Character-level array manipulation with its own common gotchas around comparison, mutability, and encoding.

String Fundamentals

Hashing & Sets

Trading O(n) extra space for O(1) average-case lookup, the single highest-leverage technique in interview problem solving.

Greedy Algorithms

Making the locally-best choice at each step and trusting it to produce a globally optimal result - and learning to recognize the (narrow) conditions under which that trust is actually justified.

Heaps

A tree-shaped structure that keeps the minimum (or maximum) of a changing collection always at the root, in O(log n) per insert or removal - the standard tool for "keep track of the best/worst so far" and "process items in priority order" problems.

Stacks and Queues

Two of the simplest possible data structures - restricted to adding and removing only at specific ends - and the surprising number of problems (matching, monotonic scans, simulating one structure with the other) that fall out of that restriction.

Stacks and Queues Fundamentals

Tries

A 26-way (or 2-way, for bits) branching tree that stores strings (or numbers' binary form) character by character, so that prefix-based lookups, counts, and maximization queries cost only the length of the string involved - independent of how many strings are stored.

Start the DSA interview prep course free

No card needed. Upgrade to Pro when you want the full problem bank.

Free plan, no card · 7-day Pro trial · Cancel anytime