interviewpath
  • 0day streak
  • 10total XP
  • Level 1

Practice

214 LeetCode problems plus official study plans and course labs. Solve on the external site, then record your attempt here for XP.

Lessons to review

No reviews due. Completed lessons come back here after 2, 7 and 21 days.

How practice is tracked

Opening a link is logged separately and never counts as solving. Record each attempt yourself, with the outcome (attempted, solved with help, solved independently or reviewed), hints, mistakes and confidence. Difficulty labels are recalled and marked "unverified" unless they were checked on the platform; LeetCode blocks automated checks. Pattern labels are curriculum mappings, not company tags.
Practice items
ExercisePatterns and topicsDifficultyYour statusOpen
A Tour of Go exercises (slices, maps, closures, Stringers, errors, readers, binary trees, web crawler)

The Go Project, assignment

No pattern label

Go essentials

Not applicableNot attemptedOpen resource(opens in a new tab)
Apache Flink training exercises (filtering, stateful enrichment, windowed analytics, timers)

Apache Flink, assignment

No pattern label

Stream processing: event time, watermarks and replay

Not applicableNot attemptedOpen resource(opens in a new tab)
Berkeley CS 185/285 homeworks: imitation learning and policy gradients

UC Berkeley CS 185/285, assignment

No pattern label

Robot learning foundations (optional), Reinforcement learning foundations (optional)

Not applicableNot attemptedOpen resource(opens in a new tab)
CMU 15-445 BusTub projects (buffer pool, index, query execution, concurrency control)

CMU 15-445, assignment

No pattern label

Indexes, B+ trees, LSM trees and Bloom filters, Buffer pools, page layouts, row and column stores and 3 more

Not applicableNot attemptedOpen resource(opens in a new tab)
CMU 15-445 Fall 2025 Homework #1: SQL (DuckDB, baseball dataset)

CMU 15-445, assignment

SQL joins and aggregation

Relational model and query semantics, SQL fluency

Not applicableNot attemptedOpen resource(opens in a new tab)
CMU 15-445 Fall 2025 Project #1: Buffer Pool Manager (BusTub)

CMU 15-445, assignment

No pattern label

Buffer pools, page layouts, row and column stores

Not applicableNot attemptedOpen resource(opens in a new tab)
CMU 15-445 Fall 2025 Project #2: B+Tree (BusTub)

CMU 15-445, assignment

No pattern label

Indexes, B+ trees, LSM trees and Bloom filters

Not applicableNot attemptedOpen resource(opens in a new tab)
CMU 15-445 Fall 2025 Project #3: Query Execution (BusTub)

CMU 15-445, assignment

No pattern label

Query execution: joins, aggregation, vectorization, Query optimization and cardinality estimation

Not applicableNot attemptedOpen resource(opens in a new tab)
CMU 15-445 Fall 2025 Project #4: Concurrency Control (BusTub MVOCC)

CMU 15-445, assignment

No pattern label

Concurrency control research and isolation correctness, Transactions, isolation anomalies and MVCC

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.1810 Lab: copy-on-write fork (Fall 2026)

MIT 6.1810, assignment

No pattern label

Virtual memory and memory management

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.1810 Lab: file system (Fall 2026)

MIT 6.1810, assignment, extra

No pattern label

Files, page cache, storage and persistence

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.1810 Lab: locks (Fall 2026)

MIT 6.1810, assignment, extra

No pattern label

CPU caches, locality, coherence and NUMA, Locks, condition variables, atomics and memory ordering

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.1810 Lab: mmap (Fall 2026)

MIT 6.1810, assignment, extra

No pattern label

Files, page cache, storage and persistence, Virtual memory and memory management

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.1810 Lab: Multithreading (Fall 2023 offering)

MIT 6.1810, assignment

No pattern label

Processes, threads, system calls and scheduling, Locks, condition variables, atomics and memory ordering

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.1810 Lab: page tables (Fall 2026)

MIT 6.1810, assignment

No pattern label

Virtual memory and memory management

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.1810 Lab: system calls (Fall 2026)

MIT 6.1810, assignment

No pattern label

Processes, threads, system calls and scheduling

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.1810 Lab: traps (Fall 2026)

MIT 6.1810, assignment, extra

No pattern label

Processes, threads, system calls and scheduling

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.1810 xv6 labs (system calls, page tables, traps, copy-on-write, locks, file system)

MIT 6.1810, assignment

No pattern label

Files, page cache, storage and persistence, Virtual memory and memory management and 2 more

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.5840 Lab 1: MapReduce

MIT 6.5840, assignment

No pattern label

Systems paper route: MapReduce, Dynamo and Raft, Failure models, partial failure and timeouts and 2 more

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.5840 Lab 2: Key/value server with at-most-once Puts and a lock

MIT 6.5840, assignment

No pattern label

Clocks, ordering, leases and fencing, Failure models, partial failure and timeouts and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
MIT 6.5840 labs: key/value server, Raft, fault-tolerant and sharded key/value

MIT 6.5840, assignment

No pattern label

Invariants, safety, liveness and distributed correctness, Replication, quorums and consensus (Raft) and 6 more

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP Ch. 19 measurement homework: TLB size and miss cost

OSTEP homework, assignment

No pattern label

CPU caches, locality, coherence and NUMA, Virtual memory and memory management and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP Ch. 21 homework: memory bandwidth and swapping observed with vmstat

OSTEP homework, assignment, extra

No pattern label

Virtual memory and memory management

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP Ch. 27 homework: finding races and deadlocks with helgrind

OSTEP homework, assignment

No pattern label

Races, deadlocks, starvation and cancellation, Locks, condition variables, atomics and memory ordering

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP Ch. 28 homework: lock implementations in an interleaving simulator

OSTEP homework, assignment, extra

No pattern label

Locks, condition variables, atomics and memory ordering

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP Ch. 30 homework: correct and broken producer/consumer queues

OSTEP homework, assignment

No pattern label

Races, deadlocks, starvation and cancellation, Locks, condition variables, atomics and memory ordering

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP Ch. 32 homework: deadlock and its avoidance strategies

OSTEP homework, assignment

No pattern label

Races, deadlocks, starvation and cancellation

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP Ch. 33 homework: a select()-based server

OSTEP homework, assignment

No pattern label

I/O models, readiness and event loops

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP Ch. 6 measurement homework: system-call and context-switch cost

OSTEP homework, assignment

No pattern label

Profiling, bottlenecks and benchmarking pitfalls, Processes, threads, system calls and scheduling

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP Ch. 7–8 homework: scheduling and MLFQ simulators

OSTEP homework, assignment, extra

No pattern label

Processes, threads, system calls and scheduling

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP project: concurrent web server

OSTEP projects, assignment, extra

No pattern label

I/O models, readiness and event loops, Locks, condition variables, atomics and memory ordering

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP project: parallel zip (pzip)

OSTEP projects, assignment

No pattern label

Throughput, latency, Little's law and Amdahl's law, Locks, condition variables, atomics and memory ordering

Not applicableNot attemptedOpen resource(opens in a new tab)
OSTEP project: Unix shell (wish)

OSTEP projects, assignment, extra

No pattern label

Processes, threads, system calls and scheduling

Not applicableNot attemptedOpen resource(opens in a new tab)
Spinning Up exercises (problem sets 1 and 2)

OpenAI Spinning Up, assignment

No pattern label

Reinforcement learning foundations (optional)

Not applicableNot attemptedOpen resource(opens in a new tab)
Stanford CS144 checkpoints: building TCP

Stanford CS144, assignment

No pattern label

Networking paper route: CS144 to BBR, TCP and UDP behavior and 3 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Stanford CS144 checkpoints: the network interface (ARP) and an IP router

Stanford CS144, assignment

No pattern label

Layering, addressing, routing and switching

Not applicableNot attemptedOpen resource(opens in a new tab)
Stanford CS231n assignments (backprop, optimizers, normalization, CNNs)

Stanford CS231n, assignment, extra

No pattern label

Neural networks, backpropagation and numerical stability, Training loops, optimizers and model debugging and 2 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Stanford CS336 assignments (tokenizer and transformer, systems, scaling, data, alignment)

Stanford CS336, assignment

No pattern label

Data, tensor and pipeline parallelism and collectives, Fine-tuning, LoRA, instruction tuning and preference optimization and 8 more

Not applicableNot attemptedOpen resource(opens in a new tab)
01 Matrix

LeetCode

Multi-source BFS, Grid as an implicit graph

Graph traversal: BFS, DFS and components

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
30 Days of JavaScript (official LeetCode study plan)

LeetCode, study plan

No pattern label

Browser runtime: event loop, rendering and promises, JavaScript and TypeScript essentials

Not applicableNot attemptedOpen resource(opens in a new tab)
3Sum

LeetCode

Two pointers, Sorting as preprocessing

Two pointers and sliding windows

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Accounts Merge

LeetCode

Union-find (disjoint sets), Graph DFS

Cycles, topological order and union-find

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Add Two Numbers

LeetCode, extra

Linked-list pointer manipulation

Linked lists

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Asteroid Collision

LeetCode, extra

Stack

Stacks, queues and deques

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Basic Calculator

LeetCode, extra

Stack

Stacks, queues and deques

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Best Time to Buy and Sell Stock

LeetCode, extra

Sliding window, Greedy with an exchange argument

Greedy algorithms and exchange arguments, Two pointers and sliding windows

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Best Time to Buy and Sell Stock with Cooldown

LeetCode, extra

One-dimensional DP

Dynamic programming foundations, Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Binary Search

LeetCode

Binary search on a sorted space

Correctness, invariants, edge cases and testing, Sorting and binary search

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Binary Tree Level Order Traversal

LeetCode

Tree BFS / level order

Trees and binary search trees

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Binary Tree Maximum Path Sum

LeetCode, extra

Tree DFS / recursion on subtrees

Trees and binary search trees

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Binary Tree Right Side View

LeetCode, extra

Tree BFS / level order

Trees and binary search trees

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Bitwise AND of Numbers Range

LeetCode, extra

Bit manipulation

Bit manipulation

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Building H2O

LeetCode, extra

Thread coordination

Races, deadlocks, starvation and cancellation, Java essentials and 1 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Burst Balloons

LeetCode, extra

Two-dimensional / grid DP

Dynamic programming on sequences, grids and knapsacks

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Capacity To Ship Packages Within D Days

LeetCode, extra

Binary search on the answer

Sorting and binary search

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Car Pooling

LeetCode

Sweep line / difference arrays

Prefix sums, intervals and sweep lines

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Cheapest Flights Within K Stops

LeetCode

Shortest paths

Shortest paths and their assumptions

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Climbing Stairs

LeetCode

One-dimensional DP

Dynamic programming foundations

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Clone Graph

LeetCode

Graph DFS, Hash map / set lookup

Graph traversal: BFS, DFS and components

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Coin Change

LeetCode

One-dimensional DP, Knapsack-style DP

Dynamic programming foundations, Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Coin Change II

LeetCode, extra

Knapsack-style DP

Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Combination Sum

LeetCode

Backtracking search

Recursion and backtracking

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Combination Sum II

LeetCode, extra

Backtracking search

Recursion and backtracking

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Combine Two Tables

LeetCode

SQL joins and aggregation

SQL fluency, Relational model and query semantics

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Confirmation Rate

LeetCode, extra

SQL joins and aggregation

Relational model and query semantics, SQL fluency

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Consecutive Numbers

LeetCode

SQL window functions

SQL fluency

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Construct Binary Tree from Preorder and Inorder Traversal

LeetCode, extra

Tree DFS / recursion on subtrees, Divide and conquer

Divide and conquer, Trees and binary search trees

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Container With Most Water

LeetCode

Two pointers

Two pointers and sliding windows

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Contains Duplicate

LeetCode, extra

Hash map / set lookup

Arrays, strings and hashing, Complexity analysis

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Continuous Subarray Sum

LeetCode, extra

Prefix sums, Hash map / set lookup

Prefix sums, intervals and sweep lines

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Copy List with Random Pointer

LeetCode, extra

Linked-list pointer manipulation, Hash map / set lookup

C++ fundamentals: lifetime, ownership and undefined behavior, Linked lists

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Corporate Flight Bookings

LeetCode

Sweep line / difference arrays, Prefix sums

Prefix sums, intervals and sweep lines

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Count of Smaller Numbers After Self

LeetCode, extra

Divide and conquer, Sorting as preprocessing

Divide and conquer

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Counting Bits

LeetCode, extra

Bit manipulation, One-dimensional DP

Bit manipulation

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Course Schedule

LeetCode

Cycle detection, Topological ordering

Cycles, topological order and union-find, Explaining solutions aloud

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Course Schedule II

LeetCode

Topological ordering

Cycles, topological order and union-find

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Customers Who Never Order

LeetCode, extra

SQL joins and aggregation

Relational model and query semantics, SQL fluency

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Daily Temperatures

LeetCode

Monotonic stack

Monotonic stacks and deques

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Decode String

LeetCode, extra

Stack

Stacks, queues and deques

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Decode Ways

LeetCode, extra

One-dimensional DP, DP on strings and subsequences

Dynamic programming foundations

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Delete Node in a BST

LeetCode, extra

BST ordering invariant

Trees and binary search trees

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Department Highest Salary

LeetCode, extra

SQL joins and aggregation

Relational model and query semantics, SQL fluency

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Department Top Three Salaries

LeetCode

SQL window functions

SQL fluency

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Design Add and Search Words Data Structure

LeetCode

Trie / prefix tree, Backtracking search

Tries (prefix trees)

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Design Browser History

LeetCode, extra

Stack, Stateful data-structure design

Stacks, queues and deques

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Design Circular Deque

LeetCode, extra

Stateful data-structure design

Stacks, queues and deques

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Design Circular Queue

LeetCode, extra

Stateful data-structure design

Stacks, queues and deques, Coding fluency and standard-library costs

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Design HashMap

LeetCode

Hash map / set lookup, Stateful data-structure design

Java essentials, C++ fundamentals: lifetime, ownership and undefined behavior and 2 more

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Design Twitter

LeetCode, extra

Stateful data-structure design, Heap selection / top-k

Pattern recognition and mixed practice, Heaps, selection and streaming

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Diameter of Binary Tree

LeetCode, extra

Tree DFS / recursion on subtrees

Trees and binary search trees

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Distinct Subsequences

LeetCode, extra

DP on strings and subsequences

Dynamic programming on sequences, grids and knapsacks

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Edit Distance

LeetCode

DP on strings and subsequences

Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Evaluate Reverse Polish Notation

LeetCode

Stack

Stacks, queues and deques

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Exchange Seats

LeetCode, extra

SQL window functions

SQL fluency

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Find All Anagrams in a String

LeetCode, extra

Sliding window, Frequency counting

Two pointers and sliding windows

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Find Customer Referee

LeetCode

SQL joins and aggregation

SQL fluency

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Find Eventual Safe States

LeetCode, extra

Cycle detection, Topological ordering

Cycles, topological order and union-find

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Find First and Last Position of Element in Sorted Array

LeetCode

Binary search on a sorted space

Correctness, invariants, edge cases and testing, Sorting and binary search

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Find K Pairs with Smallest Sums

LeetCode, extra

Heap selection / top-k

Heaps, selection and streaming

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Find Median from Data Stream

LeetCode

Two heaps / streaming statistics

Python fundamentals for interviews and research code, Heaps, selection and streaming

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Find Minimum in Rotated Sorted Array

LeetCode, extra

Binary search on a sorted space

Sorting and binary search

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Find Peak Element

LeetCode, extra

Binary search on a sorted space

Sorting and binary search

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
First Missing Positive

LeetCode, extra

Hash map / set lookup

Correctness, invariants, edge cases and testing, Arrays, strings and hashing

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Fizz Buzz Multithreaded

LeetCode, extra

Thread coordination

Locks, condition variables, atomics and memory ordering

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Game Play Analysis IV

LeetCode

SQL joins and aggregation

SQL fluency

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Gas Station

LeetCode

Greedy with an exchange argument

Greedy algorithms and exchange arguments

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Generate Parentheses

LeetCode, extra

Backtracking search

Recursion and backtracking

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Group Anagrams

LeetCode

Hash map / set lookup, Frequency counting

Python fundamentals for interviews and research code, Go essentials and 2 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Hand of Straights

LeetCode, extra

Greedy with an exchange argument, Hash map / set lookup

Greedy algorithms and exchange arguments

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
House Robber

LeetCode

One-dimensional DP

Dynamic programming foundations

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
House Robber II

LeetCode, extra

One-dimensional DP

Dynamic programming foundations

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Immediate Food Delivery II

LeetCode, extra

SQL joins and aggregation, SQL window functions

SQL fluency

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Implement Queue using Stacks

LeetCode

Stack, Stateful data-structure design

Complexity analysis, Stacks, queues and deques

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Implement Trie (Prefix Tree)

LeetCode

Trie / prefix tree

Tries (prefix trees), C++ fundamentals: lifetime, ownership and undefined behavior

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Insert Delete GetRandom O(1)

LeetCode, extra

Stateful data-structure design, Hash map / set lookup

Pattern recognition and mixed practice, Testing strategy and 2 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Insert Interval

LeetCode

Interval merging

Correctness, invariants, edge cases and testing, Prefix sums, intervals and sweep lines

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Interleaving String

LeetCode, extra

DP on strings and subsequences

Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Interval List Intersections

LeetCode, extra

Interval merging, Two pointers

Prefix sums, intervals and sweep lines

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Invert Binary Tree

LeetCode, extra

Tree DFS / recursion on subtrees

Trees and binary search trees

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Is Graph Bipartite?

LeetCode, extra

Graph BFS

Graph traversal: BFS, DFS and components

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Isomorphic Strings

LeetCode, extra

Hash map / set lookup

Arrays, strings and hashing

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Jump Game

LeetCode

Greedy with an exchange argument

Greedy algorithms and exchange arguments

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Jump Game II

LeetCode, extra

Greedy with an exchange argument

Greedy algorithms and exchange arguments

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
K Closest Points to Origin

LeetCode, extra

Heap selection / top-k

Heaps, selection and streaming, Coding fluency and standard-library costs

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Koko Eating Bananas

LeetCode

Binary search on the answer

Sorting and binary search

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Kth Largest Element in a Stream

LeetCode

Heap selection / top-k

Heaps, selection and streaming

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Kth Largest Element in an Array

LeetCode

Heap selection / top-k, Divide and conquer

Divide and conquer, Heaps, selection and streaming and 2 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Kth Smallest Element in a BST

LeetCode, extra

BST ordering invariant

Trees and binary search trees

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Largest Number

LeetCode

Sorting as preprocessing

Coding fluency and standard-library costs, Sorting and binary search

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Largest Rectangle in Histogram

LeetCode

Monotonic stack

Monotonic stacks and deques

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Last Stone Weight

LeetCode, extra

Heap selection / top-k

Coding fluency and standard-library costs, Heaps, selection and streaming

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
LeetCode 75 (official study plan)

LeetCode, study plan

No pattern label

Pattern recognition and mixed practice, Coding fluency and standard-library costs and 2 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Letter Combinations of a Phone Number

LeetCode, extra

Backtracking search

Recursion and backtracking

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
LFU Cache

LeetCode, extra

Stateful data-structure design, Linked-list pointer manipulation, Hash map / set lookup

Pattern recognition and mixed practice

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Linked List Cycle

LeetCode

Fast and slow pointers

Linked lists

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Linked List Cycle II

LeetCode, extra

Fast and slow pointers

Linked lists

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Longest Common Subsequence

LeetCode

DP on strings and subsequences

Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Longest Consecutive Sequence

LeetCode

Hash map / set lookup

Arrays, strings and hashing

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit

LeetCode, extra

Monotonic deque, Sliding window

Monotonic stacks and deques, Two pointers and sliding windows

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Longest Increasing Path in a Matrix

LeetCode, extra

Two-dimensional / grid DP, Graph DFS

Graph traversal: BFS, DFS and components, Dynamic programming on sequences, grids and knapsacks

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Longest Increasing Subsequence

LeetCode

One-dimensional DP, Binary search on a sorted space

Dynamic programming foundations, Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Longest Palindromic Substring

LeetCode, extra

DP on strings and subsequences, Two pointers

Dynamic programming on sequences, grids and knapsacks, Two pointers and sliding windows

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Longest Repeating Character Replacement

LeetCode, extra

Sliding window, Frequency counting

Two pointers and sliding windows

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Longest Substring Without Repeating Characters

LeetCode

Sliding window, Hash map / set lookup

Two pointers and sliding windows

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Lowest Common Ancestor of a Binary Search Tree

LeetCode, extra

BST ordering invariant

Trees and binary search trees

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Lowest Common Ancestor of a Binary Tree

LeetCode

Tree DFS / recursion on subtrees

Trees and binary search trees

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
LRU Cache

LeetCode

Stateful data-structure design, Linked-list pointer manipulation, Hash map / set lookup

Partitioning, hot keys and caching, Java essentials and 10 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Map Sum Pairs

LeetCode, extra

Trie / prefix tree, Hash map / set lookup

Tries (prefix trees)

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Maximum Depth of Binary Tree

LeetCode, extra

Tree DFS / recursion on subtrees

Trees and binary search trees

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Maximum Product Subarray

LeetCode, extra

One-dimensional DP

Dynamic programming foundations

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Maximum Subarray

LeetCode

Greedy with an exchange argument, One-dimensional DP

Dynamic programming foundations, Greedy algorithms and exchange arguments

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Maximum XOR of Two Numbers in an Array

LeetCode, extra

Trie / prefix tree, Bit manipulation

Tries (prefix trees)

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Median of Two Sorted Arrays

LeetCode, extra

Binary search on a sorted space

Divide and conquer, Sorting and binary search

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Merge Intervals

LeetCode

Interval merging, Sorting as preprocessing

Testing strategy, Correctness, invariants, edge cases and testing and 2 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Merge k Sorted Lists

LeetCode

Heap selection / top-k, Divide and conquer, Linked-list pointer manipulation

Query execution: joins, aggregation, vectorization, Divide and conquer and 3 more

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Merge Two Sorted Lists

LeetCode

Linked-list pointer manipulation

Linked lists

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Middle of the Linked List

LeetCode, extra

Fast and slow pointers

Linked lists

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Min Cost Climbing Stairs

LeetCode, extra

One-dimensional DP

Dynamic programming foundations

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Min Cost to Connect All Points

LeetCode, extra

Union-find (disjoint sets), Greedy with an exchange argument

Cycles, topological order and union-find, Greedy algorithms and exchange arguments

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Min Stack

LeetCode

Stack, Stateful data-structure design

Stacks, queues and deques

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Minimum Number of Arrows to Burst Balloons

LeetCode, extra

Interval merging, Greedy with an exchange argument

Greedy algorithms and exchange arguments, Prefix sums, intervals and sweep lines

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Minimum Obstacle Removal to Reach Corner

LeetCode, extra

Shortest paths, Grid as an implicit graph

Shortest paths and their assumptions

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Minimum Path Sum

LeetCode, extra

Two-dimensional / grid DP

Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Minimum Size Subarray Sum

LeetCode

Sliding window

Two pointers and sliding windows

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Minimum Window Substring

LeetCode

Sliding window, Frequency counting

Two pointers and sliding windows

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Missing Number

LeetCode, extra

Bit manipulation, Hash map / set lookup

Bit manipulation

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Move Zeroes

LeetCode, extra

Two pointers

Two pointers and sliding windows

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
My Calendar I

LeetCode, extra

Interval merging

Prefix sums, intervals and sweep lines

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
N-Queens

LeetCode, extra

Backtracking search

Recursion and backtracking

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Network Delay Time

LeetCode

Shortest paths

Shortest paths and their assumptions

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Next Greater Element I

LeetCode, extra

Monotonic stack

Monotonic stacks and deques

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Next Greater Element II

LeetCode, extra

Monotonic stack

Monotonic stacks and deques

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Non-overlapping Intervals

LeetCode

Interval merging, Greedy with an exchange argument

Greedy algorithms and exchange arguments, Prefix sums, intervals and sweep lines

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Nth Highest Salary

LeetCode, extra

SQL window functions

SQL fluency

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Number of 1 Bits

LeetCode

Bit manipulation

Bit manipulation

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Number of Islands

LeetCode

Grid as an implicit graph, Graph DFS, Graph BFS

Graph traversal: BFS, DFS and components, Complexity analysis

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Number of Provinces

LeetCode, extra

Union-find (disjoint sets), Graph DFS

Cycles, topological order and union-find, Graph traversal: BFS, DFS and components

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Number of Recent Calls

LeetCode

Sliding window

Stacks, queues and deques

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Online Stock Span

LeetCode, extra

Monotonic stack

Monotonic stacks and deques

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Pacific Atlantic Water Flow

LeetCode, extra

Grid as an implicit graph, Multi-source BFS

Graph traversal: BFS, DFS and components

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Palindrome Linked List

LeetCode, extra

Fast and slow pointers, Linked-list pointer manipulation

Linked lists

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Palindrome Partitioning

LeetCode, extra

Backtracking search

Recursion and backtracking

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Partition Equal Subset Sum

LeetCode

Knapsack-style DP

Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Partition Labels

LeetCode, extra

Greedy with an exchange argument, Interval merging

Greedy algorithms and exchange arguments

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Path With Minimum Effort

LeetCode, extra

Shortest paths, Grid as an implicit graph, Binary search on the answer

Shortest paths and their assumptions

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Permutation in String

LeetCode

Sliding window, Frequency counting

Two pointers and sliding windows

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Permutations

LeetCode

Backtracking search

Recursion and backtracking

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Pow(x, n)

LeetCode

Divide and conquer

Divide and conquer

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Power of Two

LeetCode

Bit manipulation

Bit manipulation

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Print FooBar Alternately

LeetCode

Thread coordination

Locks, condition variables, atomics and memory ordering, Java essentials and 2 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Print in Order

LeetCode

Thread coordination

Locks, condition variables, atomics and memory ordering, Python fundamentals for interviews and research code

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Print Zero Even Odd

LeetCode, extra

Thread coordination

Locks, condition variables, atomics and memory ordering

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Product of Array Except Self

LeetCode

Prefix sums

Prefix sums, intervals and sweep lines

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Range Sum Query - Immutable

LeetCode, extra

Prefix sums

Prefix sums, intervals and sweep lines

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Range Sum Query 2D - Immutable

LeetCode, extra

Prefix sums

Prefix sums, intervals and sweep lines

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Rank Scores

LeetCode

SQL window functions

SQL fluency

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Redundant Connection

LeetCode

Union-find (disjoint sets), Cycle detection

Cycles, topological order and union-find

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Regular Expression Matching

LeetCode, extra

DP on strings and subsequences

Dynamic programming on sequences, grids and knapsacks

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Remove Nth Node From End of List

LeetCode, extra

Fast and slow pointers

Linked lists

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Reorder List

LeetCode

Fast and slow pointers, Linked-list pointer manipulation

Linked lists

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Replace Words

LeetCode

Trie / prefix tree

Tries (prefix trees)

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Restaurant Growth

LeetCode, extra

SQL window functions

SQL fluency

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Reverse Bits

LeetCode, extra

Bit manipulation

Bit manipulation

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Reverse Linked List

LeetCode

Linked-list pointer manipulation

Linked lists

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Reverse Nodes in k-Group

LeetCode, extra

Linked-list pointer manipulation

Correctness, invariants, edge cases and testing, Linked lists

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Rising Temperature

LeetCode, extra

SQL joins and aggregation

SQL fluency

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Rotting Oranges

LeetCode

Multi-source BFS, Grid as an implicit graph

Graph traversal: BFS, DFS and components

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Satisfiability of Equality Equations

LeetCode, extra

Union-find (disjoint sets)

Cycles, topological order and union-find

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Search a 2D Matrix

LeetCode, extra

Binary search on a sorted space

Sorting and binary search

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Search in Rotated Sorted Array

LeetCode

Binary search on a sorted space

Sorting and binary search

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Search Insert Position

LeetCode

Binary search on a sorted space

Sorting and binary search

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Search Suggestions System

LeetCode

Trie / prefix tree, Sorting as preprocessing

Tries (prefix trees)

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Second Highest Salary

LeetCode

SQL joins and aggregation

Relational model and query semantics, SQL fluency

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Serialize and Deserialize Binary Tree

LeetCode

Tree DFS / recursion on subtrees, Tree BFS / level order

Trees and binary search trees

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Shortest Path in Binary Matrix

LeetCode

Graph BFS, Grid as an implicit graph

Shortest paths and their assumptions, Graph traversal: BFS, DFS and components

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Shortest Subarray with Sum at Least K

LeetCode, extra

Monotonic deque, Prefix sums

Monotonic stacks and deques, Prefix sums, intervals and sweep lines

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Single Number

LeetCode

Bit manipulation

Bit manipulation

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Single Number II

LeetCode, extra

Bit manipulation

Bit manipulation

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Sliding Window Maximum

LeetCode

Monotonic deque, Sliding window

Python fundamentals for interviews and research code, Monotonic stacks and deques

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Sliding Window Median

LeetCode, extra

Two heaps / streaming statistics, Sliding window

Heaps, selection and streaming

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Snapshot Array

LeetCode, extra

Stateful data-structure design, Binary search on a sorted space

Pattern recognition and mixed practice

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Sort an Array

LeetCode

Divide and conquer, Sorting as preprocessing

Divide and conquer, Sorting and binary search

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Sort Colors

LeetCode, extra

Two pointers, Sorting as preprocessing

Correctness, invariants, edge cases and testing, Sorting and binary search and 1 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
SQL 50 (official study plan)

LeetCode, study plan

SQL joins and aggregation, SQL window functions

Relational model and query semantics, SQL fluency

Not applicableNot attemptedOpen resource(opens in a new tab)
Stream of Characters

LeetCode, extra

Trie / prefix tree

Tries (prefix trees)

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Students and Examinations

LeetCode

SQL joins and aggregation

SQL fluency

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Subarray Sum Equals K

LeetCode

Prefix sums, Hash map / set lookup

Prefix sums, intervals and sweep lines, Arrays, strings and hashing

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Subarrays with K Different Integers

LeetCode, extra

Sliding window, Frequency counting

Two pointers and sliding windows

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Subsets

LeetCode

Backtracking search

Recursion and backtracking, Complexity analysis

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Subsets II

LeetCode, extra

Backtracking search

Recursion and backtracking

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Sum of Subarray Minimums

LeetCode, extra

Monotonic stack

Monotonic stacks and deques

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Sum of Two Integers

LeetCode, extra

Bit manipulation

Bit manipulation

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Surrounded Regions

LeetCode, extra

Grid as an implicit graph, Graph DFS

Graph traversal: BFS, DFS and components

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Swim in Rising Water

LeetCode, extra

Shortest paths, Union-find (disjoint sets)

Shortest paths and their assumptions

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Target Sum

LeetCode, extra

Knapsack-style DP

Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Task Scheduler

LeetCode, extra

Heap selection / top-k, Greedy with an exchange argument

Heaps, selection and streaming, Greedy algorithms and exchange arguments

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
The Dining Philosophers

LeetCode

Thread coordination

Races, deadlocks, starvation and cancellation, C++ fundamentals: lifetime, ownership and undefined behavior and 1 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Time Based Key-Value Store

LeetCode

Stateful data-structure design, Binary search on a sorted space

Transactions, isolation anomalies and MVCC, Go essentials and 7 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Top Interview 150 (official study plan)

LeetCode, study plan

No pattern label

Pattern recognition and mixed practice, Mock interviews and timed practice and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Top K Frequent Elements

LeetCode

Heap selection / top-k, Frequency counting

Coding fluency and standard-library costs, Python fundamentals for interviews and research code and 3 more

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Trapping Rain Water

LeetCode

Two pointers, Prefix sums, Monotonic stack

Monotonic stacks and deques, Two pointers and sliding windows

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Trips and Users

LeetCode, extra

SQL joins and aggregation

Relational model and query semantics, SQL fluency

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Two City Scheduling

LeetCode, extra

Greedy with an exchange argument, Sorting as preprocessing

Greedy algorithms and exchange arguments

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Two Sum

LeetCode

Hash map / set lookup

Complexity analysis, Arrays, strings and hashing and 1 more

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Two Sum II - Input Array Is Sorted

LeetCode, extra

Two pointers

Two pointers and sliding windows

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Unique Paths

LeetCode

Two-dimensional / grid DP

Dynamic programming on sequences, grids and knapsacks

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Valid Anagram

LeetCode

Frequency counting

Arrays, strings and hashing

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Valid Palindrome

LeetCode

Two pointers

Two pointers and sliding windows

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Valid Parentheses

LeetCode

Stack

Stacks, queues and deques

EasyUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Valid Parenthesis String

LeetCode, extra

Greedy with an exchange argument

Greedy algorithms and exchange arguments

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Valid Sudoku

LeetCode, extra

Hash map / set lookup

Arrays, strings and hashing

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Validate Binary Search Tree

LeetCode

BST ordering invariant, Tree DFS / recursion on subtrees

Trees and binary search trees

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Word Break

LeetCode

One-dimensional DP, DP on strings and subsequences

Dynamic programming foundations

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Word Ladder

LeetCode, extra

Graph BFS

Graph traversal: BFS, DFS and components

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Word Search

LeetCode

Backtracking search, Grid as an implicit graph

Recursion and backtracking

MediumUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Word Search II

LeetCode, extra

Trie / prefix tree, Backtracking search

Tries (prefix trees)

HardUnverifiedNot attemptedOpen in LeetCode(opens in a new tab)
Jane Street mock interview (retired question)

Jane Street, mock interview

No pattern label

Explaining solutions aloud, Mock interviews and timed practice

Not applicableNot attemptedOpen resource(opens in a new tab)
Add a KV cache to nanoGPT generation and prove equivalence

Self-directed project (nanoGPT as the base), project

No pattern label

Implementing attention from scratch, AI paper route: Attention, FlashAttention, LoRA, DPO, RAG and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Benchmark a database under skew, concurrency and cache-state changes

YCSB or pgbench + local database, project

No pattern label

Database benchmark and workload design, Database workload evaluation

Not applicableNot attemptedOpen resource(opens in a new tab)
Benchmark an LLM server under open-loop load and report goodput

Self-directed (vLLM or another serving engine), project

No pattern label

Serving metrics: goodput, TTFT and inter-token latency, PagedAttention, continuous batching and scheduling and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Boot Firecracker microVMs and measure startup yourself

Self-directed (Firecracker), project, extra

No pattern label

Cloud paper route: Firecracker and cluster management, Elasticity, autoscaling and serverless cold starts

Not applicableNot attemptedOpen resource(opens in a new tab)
Break and fix a toy service on a local kind cluster (probes, requests, limits)

kind (Kubernetes SIGs), project

No pattern label

Resource scheduling, fairness, interference and cold starts, Kubernetes and container orchestration

Not applicableNot attemptedOpen resource(opens in a new tab)
Build a framed TCP echo server and watch backpressure

Hands-on project (Beej's Guide as reference), project

No pattern label

Sockets, buffering and backpressure, TCP and UDP behavior

Not applicableNot attemptedOpen resource(opens in a new tab)
Build a small write-ahead-logged key-value store and crash-test it

Self-directed (design reference: SQLite documentation), project

No pattern label

Write-ahead logging, recovery and durability

Not applicableNot attemptedOpen resource(opens in a new tab)
Build a toy LSM-tree key-value store and measure amplification

Self-directed (design reference: RocksDB wiki), project, extra

No pattern label

Indexes, B+ trees, LSM trees and Bloom filters, Database benchmark and workload design

Not applicableNot attemptedOpen resource(opens in a new tab)
Build and audit a small LLM evaluation with Inspect

Self-directed project (Inspect framework), project

No pattern label

Alignment and safety evaluation research (optional), Evaluating ML and LLM systems

Not applicableNot attemptedOpen resource(opens in a new tab)
Capture and annotate one HTTPS request end to end (DNS, TCP, TLS 1.3, HTTP)

Hands-on project (Wireshark User's Guide as reference), project

No pattern label

Head-of-line blocking, QUIC and HTTP/3, DNS, HTTP versions and TLS and 2 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Compare bin-packing heuristics and DRF on a cluster trace sample

Self-directed (public cluster traces), project, extra

No pattern label

Cluster scheduling, bin packing and fairness, Trace-driven evaluation and revisiting your cloud coursework

Not applicableNot attemptedOpen resource(opens in a new tab)
Custom autograd Functions verified with gradcheck

Self-directed project (PyTorch documentation), project

No pattern label

PyTorch and autograd fluency

Not applicableNot attemptedOpen resource(opens in a new tab)
Data-parallel scaling and collective bandwidth measurements

Self-directed (nccl-tests, PyTorch DDP and FSDP), project, extra

No pattern label

Data, tensor and pipeline parallelism and collectives

Not applicableNot attemptedOpen resource(opens in a new tab)
Declare, apply and drift a local container with Terraform

HashiCorp Developer, project

No pattern label

Platform engineering, infrastructure as code and safe migrations

Not applicableNot attemptedOpen resource(opens in a new tab)
Decompose request latency with dig and curl timing

Hands-on project (Everything curl as reference), project

No pattern label

Network troubleshooting and measurement, Proxies, load balancing and CDNs and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Differential-test an optimized function against a naive reference

Self-directed (Hypothesis property-based testing), project

No pattern label

Research coding: prototypes, reference checks and instrumentation

Not applicableNot attemptedOpen resource(opens in a new tab)
DPO loss on a toy preference problem with a known reward

Self-directed project (authors’ reference code linked), project, extra

No pattern label

Alignment and safety evaluation research (optional), AI paper route: Attention, FlashAttention, LoRA, DPO, RAG and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Emulate a bottleneck with tc (netem and tbf) and compare congestion controllers

Hands-on project (Linux tc-netem and tc-tbf manual pages), project

No pattern label

Congestion-control research and its evaluation dependencies, Flow control, congestion control and queueing and 3 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Estimate the KV cache for a model you choose and check it against measured memory

Self-directed (Hugging Face Transformers or vLLM), project

No pattern label

Prefill, decode and KV-cache sizing, PagedAttention, continuous batching and scheduling and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Estimate, then measure, the training memory of a small transformer

Self-directed (PyTorch memory tools), project

No pattern label

Training memory accounting, Mixed precision, accumulation and activation checkpointing

Not applicableNot attemptedOpen resource(opens in a new tab)
Fault-inject a replicated key/value store and check its histories

Self-directed project (Porcupine checker), project

No pattern label

Failure injection and prototype evaluation, Invariants, safety, liveness and distributed correctness

Not applicableNot attemptedOpen resource(opens in a new tab)
Find and verify induction heads with TransformerLens

Self-directed project (TransformerLens), project, extra

No pattern label

Interpretability methods (optional)

Not applicableNot attemptedOpen resource(opens in a new tab)
Find cardinality misestimates with EXPLAIN ANALYZE on the Join Order Benchmark

Join Order Benchmark + local PostgreSQL, project

No pattern label

Query optimization research and learned components, Query optimization and cardinality estimation and 2 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Gossip Glomers distributed-systems challenges (Maelstrom)

Fly.io with Jepsen Maelstrom, project

No pattern label

Delivery semantics, deduplication and the outbox pattern, Consistency models and isolation guarantees and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Heilmeier pitch and three falsifiable hypotheses for one interest

Self-directed (DARPA Heilmeier Catechism), project

No pattern label

Research internship and Master's thesis interview preparation, From interest to falsifiable research question

Not applicableNot attemptedOpen resource(opens in a new tab)
Hypothesis-driven chaos experiment on a small multi-service application

Self-directed project (chaos engineering principles), project, extra

No pattern label

Failure injection and prototype evaluation

Not applicableNot attemptedOpen resource(opens in a new tab)
Implement blockwise attention with an online softmax

Self-directed (PyTorch, optionally Triton), project

No pattern label

FlashAttention and IO-aware exact attention

Not applicableNot attemptedOpen resource(opens in a new tab)
Implement byte-level BPE tokenization (minbpe)

Andrej Karpathy (GitHub), project

No pattern label

Transformers, attention and language-model objectives

Not applicableNot attemptedOpen resource(opens in a new tab)
Linear probe with a control task on a small transformer

Self-directed project (control-task method), project

No pattern label

Interpretability methods (optional)

Not applicableNot attemptedOpen resource(opens in a new tab)
LoRA layer from scratch with a merge test

Self-directed project (reference implementation linked), project

No pattern label

AI paper route: Attention, FlashAttention, LoRA, DPO, RAG, Fine-tuning, LoRA, instruction tuning and preference optimization

Not applicableNot attemptedOpen resource(opens in a new tab)
Measure when quantization helps: latency, throughput and quality

Self-directed (serving engine with quantization support), project, extra

No pattern label

Quantization, kernels and quality tradeoffs

Not applicableNot attemptedOpen resource(opens in a new tab)
Mixed precision, gradient accumulation and checkpointing experiments

Self-directed (PyTorch AMP), project

No pattern label

Mixed precision, accumulation and activation checkpointing

Not applicableNot attemptedOpen resource(opens in a new tab)
Multi-head causal attention tested against PyTorch SDPA

Self-directed project (PyTorch documentation as reference), project

No pattern label

Implementing attention from scratch, AI paper route: Attention, FlashAttention, LoRA, DPO, RAG and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Observe Kubernetes autoscaling under a load step

Self-directed (local or cloud Kubernetes cluster), project, extra

No pattern label

Elasticity, autoscaling and serverless cold starts

Not applicableNot attemptedOpen resource(opens in a new tab)
Observe two-phase commit blocking with PREPARE TRANSACTION

PostgreSQL documentation + local PostgreSQL, project

No pattern label

Distributed transactions and recovery research, OLTP vs OLAP, distributed joins and distributed transactions

Not applicableNot attemptedOpen resource(opens in a new tab)
One-page evaluation plan with baselines, ablations and controls

Self-directed (checklist from Hoefler and Belli), project

No pattern label

Experimental design: controls, baselines and ablations

Not applicableNot attemptedOpen resource(opens in a new tab)
Optimizer and learning-rate schedule study on a small model

Self-directed project (Dive into Deep Learning code as a starting point), project

No pattern label

Optimization and math foundations for ML research, Experimental controls for ML research

Not applicableNot attemptedOpen resource(opens in a new tab)
OWASP Juice Shop: hands-on web security challenges

OWASP Foundation, project

No pattern label

HTTP basics, authentication, authorization and input safety

Not applicableNot attemptedOpen resource(opens in a new tab)
Package one past project as a reproducible artifact

Self-directed (sysartifacts packaging guide), project

No pattern label

Reproducibility, provenance and artifacts, Research coding: prototypes, reference checks and instrumentation

Not applicableNot attemptedOpen resource(opens in a new tab)
Perturb an innocuous setup factor and test whether a speedup survives

Self-directed (after Mytkowicz et al., ASPLOS 2009), project, extra

No pattern label

Statistical uncertainty, seeds and paired comparisons, Benchmark realism and external validity

Not applicableNot attemptedOpen resource(opens in a new tab)
Predict, then measure: queueing model versus open-loop load test

Self-directed project (open-loop load generator), project

No pattern label

Performance modeling, traces and bottleneck attribution

Not applicableNot attemptedOpen resource(opens in a new tab)
Profile a training step and attribute its time

Self-directed (PyTorch profiler), project

No pattern label

Input pipelines, host-device transfer and overlap, GPU architecture, memory hierarchy and arithmetic intensity and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Re-run and document one of your cloud coursework experiments

Self-directed (your coursework setup), project

No pattern label

Trace-driven evaluation and revisiting your cloud coursework, Interference, noisy neighbors and performance isolation and 2 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Rebuild micrograd: a scalar reverse-mode autograd engine

Andrej Karpathy (GitHub), project

No pattern label

Neural networks, backpropagation and numerical stability

Not applicableNot attemptedOpen resource(opens in a new tab)
Record 2-, 10- and 45-minute explanations of one paper and one project

Self-directed (talk advice from Simon Peyton Jones), project

No pattern label

Explaining a paper or project at 2, 10 and 45 minutes, Research internship and Master's thesis interview preparation

Not applicableNot attemptedOpen resource(opens in a new tab)
REINFORCE with a baseline, then PPO clipping

Self-directed project (Spinning Up algorithm docs as reference), project

No pattern label

Reinforcement learning foundations (optional)

Not applicableNot attemptedOpen resource(opens in a new tab)
Repeat one benchmark ten times and report a paired confidence interval

Self-directed (reporting rules from Hoefler and Belli), project

No pattern label

Statistical uncertainty, seeds and paired comparisons, Experimental design: controls, baselines and ablations

Not applicableNot attemptedOpen resource(opens in a new tab)
Reproduce bufferbloat on a Mininet dumbbell topology

Hands-on project (Mininet walkthrough as starting point), project

No pattern label

Transport and queueing foundations for research, Network measurement: emulation, simulation and deployment and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Reproduce isolation anomalies in PostgreSQL with two sessions

Hermitage scripts + local PostgreSQL, project

No pattern label

Transactions, isolation anomalies and MVCC, Concurrency control research and isolation correctness and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Reproduce one figure from an artifact-evaluated systems paper

Self-directed (papers listed on sysartifacts), project, extra

No pattern label

Negative results, failed reproductions and revising hypotheses, Reproducibility, provenance and artifacts

Not applicableNot attemptedOpen resource(opens in a new tab)
Roofline benchmark: matmuls and elementwise operations on your GPU

Self-directed (PyTorch benchmark utilities), project

No pattern label

GPU architecture, memory hierarchy and arithmetic intensity

Not applicableNot attemptedOpen resource(opens in a new tab)
Seed and tuning-budget audit of a two-arm comparison

Self-directed project (budget-aware reporting as the method), project

No pattern label

Experimental controls for ML research

Not applicableNot attemptedOpen resource(opens in a new tab)
Simulate serverless keep-alive policies on the Azure Functions trace

Self-directed (Azure Public Dataset), project

No pattern label

Elasticity, autoscaling and serverless cold starts, Trace-driven evaluation and revisiting your cloud coursework and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Simulate the same dumbbell bottleneck in ns-3 and compare with emulation

Hands-on project (ns-3 tutorial as starting point), project, extra

No pattern label

Network measurement: emulation, simulation and deployment

Not applicableNot attemptedOpen resource(opens in a new tab)
Specify and model-check a small protocol with TLA+

Self-directed project (TLA+ tools), project

No pattern label

Invariants, safety, liveness and distributed correctness

Not applicableNot attemptedOpen resource(opens in a new tab)
Stragglers and backup tasks in your MapReduce lab implementation

Self-directed extension of MIT 6.5840 Lab 1, project, extra

No pattern label

Performance modeling, traces and bottleneck attribution, Systems paper route: MapReduce, Dynamo and Raft

Not applicableNot attemptedOpen resource(opens in a new tab)
Tensor autograd engine with broadcasting-aware gradients

Self-directed project (micrograd as the scalar reference), project

No pattern label

PyTorch and autograd fluency

Not applicableNot attemptedOpen resource(opens in a new tab)
Trace Raft scenarios in the RaftScope visualization

raft.github.io, project

No pattern label

Replication, quorums and consensus (Raft)

Not applicableNot attemptedOpen resource(opens in a new tab)
Answer MIT 6.5840 per-paper questions before reading the course notes

MIT 6.5840, assignment, extra

No pattern label

Reading papers and locating the evidence for claims, Explaining a paper or project at 2, 10 and 45 minutes

Not applicableNot attemptedOpen resource(opens in a new tab)
Audit a cloud or systems evaluation against the seven deadly sins

Guided reading (HotCloud 2012 checklist), assignment

No pattern label

Benchmark realism and external validity

Not applicableNot attemptedOpen resource(opens in a new tab)
Bounded literature search and positioning table

Self-directed (literature-survey method from Keshav), assignment

No pattern label

Prior work, positioning and novelty

Not applicableNot attemptedOpen resource(opens in a new tab)
Claim-evidence table for the Raft paper

Guided reading (Raft extended version), assignment

No pattern label

Correctness guarantees versus empirical evidence, Reading papers and locating the evidence for claims

Not applicableNot attemptedOpen resource(opens in a new tab)
Classify the anomalies in one Jepsen analysis

Jepsen, assignment, extra

No pattern label

Consistency models and isolation guarantees, Replication, quorums and consensus (Raft)

Not applicableNot attemptedOpen resource(opens in a new tab)
Critique the evaluation of a database systems paper (example: in-memory MVCC evaluation)

Guided reading exercise (PVLDB paper), assignment

No pattern label

Database paper route: CMU courses to Spanner, Database workload evaluation and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Work the Non-Abstract Large System Design problem before reading the solution

Google SRE Workbook, assignment

No pattern label

System design practice routine, System design method and 1 more

Not applicableNot attemptedOpen resource(opens in a new tab)
Write an SLO document and error budget policy

Google SRE Workbook, assignment

No pattern label

SLOs, incidents, capacity and tail latency

Not applicableNot attemptedOpen resource(opens in a new tab)