Sitemap
Every page on CodeSimulators, in one place. Browse the full curriculum →
Start Here
Pattern Guides
System Design (HLD)
- The Monolith
- Separate the Database
- Caching with Redis
- Read Replicas
- Indexes & Query Performance
- Load Balancer
- Stateless Services
- Message Queues
- Database Sharding
- CDN
- API Gateway
- Real-Time Communication
- Observability, Failure & Recovery
- The Interview Framework
- The Problem Archetypes
- Design Twitter / Feed
- Ad Click Aggregator
- Ticket Booking
- WhatsApp / Chat
- Video Streaming
- Uber / Proximity
- Search Autocomplete
- URL Shortener
- Key-Value Store
- Google Docs
- Dropbox / Drive
Data Structures
- Language Syntax & Control Flow
- Memory Model: Stack vs Heap
- Standard Collections Rosetta Stone
- String Mutability & String Builder
- Input/Output & Fast I/O Boilerplates
- Array Traversal (Linear Search)
- Two Sum
- Majority Element
- Max Consecutive Ones
- Pascal's Triangle
- Rotate Image
- Set Matrix Zeroes
- Spiral Matrix
- Product of Array Except Self
- Next Permutation
- Maximum Subarray (Kadane's)
- Maximum Product Subarray
- Valid Anagram
- Longest Common Prefix
- Find the Index of the First Occurrence in a String
- Count and Say
- Compare Version Numbers
- Group Anagrams
- Longest Palindromic Substring
- Linked List Traversal
- Delete Node
- Remove Duplicates from Sorted List
- Add Two Numbers
- Design Linked List
- Odd Even Linked List
- Partition List
- Rotate List
- Swap Nodes in Pairs
- Reverse Linked List
- Reverse Nodes in k-Group
- Copy List with Random Pointer
- Valid Parentheses
- Decode String
- Evaluate Reverse Polish Notation
- Simplify Path
- Basic Calculator II
- The Celebrity Problem
- Flatten Nested List Iterator
- Implement Queue using Stacks
- Implement Stack using Queues
- Min Stack
- LRU Cache
- LFU Cache
- Design HashMap
- Insert Delete GetRandom O(1)
- Binary Tree Traversals (DFS)
- Iterative Traversals
- Morris Traversal (Inorder)
- Maximum Depth of Binary Tree
- Invert Binary Tree
- Same Tree
- Symmetric Tree
- Balanced Binary Tree
- Root to Node Path
- Path Sum
- Binary Tree Paths
- Sum Root to Leaf Numbers
- Diameter of Binary Tree
- Lowest Common Ancestor
- Binary Tree Maximum Path Sum
- Binary Tree Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- Maximum Width of Binary Tree
- Populating Next Right Pointers in Each Node
- Binary Tree Left/Right Side View
- Binary Tree Top/Bottom View
- Vertical Order Traversal
- Flatten Binary Tree
- Construct Tree from Preorder and Inorder
- Construct Tree from Inorder and Postorder
- Serialize and Deserialize Binary Tree
- All Nodes Distance K in Binary Tree
- Amount of Time for Binary Tree to Be Infected
- Convert Sorted Array to BST
- Graph Traversal (BFS & DFS)
- Topological Sort
- Course Schedule
- Directed Cycle Detection
- Undirected Cycle Detection
- Kth Largest Element
- Top K Frequent Elements
- Find Median from Data Stream
- Task Scheduler
- Merge K Sorted Lists
- Implement Trie (Prefix Tree)
- Design Add and Search Words Data Structure
- Word Search II
- Union-Find (DSU)
- Redundant Connection
- Number of Provinces
- Dijkstra's Algorithm
- Network Delay Time
- Bellman-Ford Algorithm
Algorithms
- Move Zeroes
- Remove Duplicates
- Is Subsequence
- Valid Palindrome
- Palindrome Linked List
- Two Sum II - Input Array Is Sorted
- 3Sum
- Container With Most Water
- Trapping Rain Water
- Remove Nth Node From End
- Middle of the Linked List
- Linked List Cycle
- Linked List Cycle II
- Sort Colors (Dutch National Flag)
- Bubble Sort
- Quick Sort
- Merge Sort
- Reverse Pairs
- First Missing Positive (Cyclic Sort)
- H-Index (Counting Sort)
- Sort Characters By Frequency (Bucket Sort)
- Reorder List
- Intersection of Two Linked Lists
- Merge Two Sorted Lists
- Maximum Sum Subarray of Size K
- Find All Anagrams
- Permutation in String
- Max Points from Cards
- Fruit Into Baskets
- Longest Repeating Character Replacement
- Longest Substring Without Repeating Characters
- Max Consecutive Ones III
- Minimum Size Subarray Sum
- Minimum Window Substring
- Subarrays with K Different Integers
- Next Greater Element I
- Next Greater Element II
- Daily Temperatures
- Asteroid Collision
- Largest Rectangle in Histogram
- Maximal Rectangle
- Sum of Subarray Minimums
- Sliding Window Max
- Remove K Digits
- 132 Pattern
- Classic Binary Search
- Search Insert Position
- Search a 2D Matrix
- Find Minimum in Rotated Sorted Array
- Search in Rotated Sorted Array
- Find Peak Element
- Single Element in a Sorted Array
- Find First and Last Position of Element in Sorted Array
- Koko Eating Bananas
- Subsets (Power Set)
- Combinations
- Permutations
- Combination Sum
- Word Search
- N-Queens
- Sudoku Solver
- Shortest Path in Binary Matrix
- Rotting Oranges
- Word Ladder
- Open the Lock
- Perfect Squares
- 01 Matrix
- Number of Islands
- Flood Fill
- Max Area of Island
- Surrounded Regions
- Pacific Atlantic Water Flow
- Climbing Stairs
- Unique Paths
- Unique Paths II
- House Robber
- Longest Increasing Subsequence
- Min Cost Climbing Stairs
- Coin Change (Optimal)
- 0/1 Knapsack
- Longest Common Subsequence
- Edit Distance
- Matrix Chain Multiplication
- Traveling Salesperson (TSP)
- Dungeon Game
- Min Falling Path Sum
- Triangle
- Partition Subset Sum
- Buy & Sell Stock
- Stock with Cooldown
- Russian Doll Envelopes
- Burst Balloons
- Coin Change II (Ways)
- Coin Change (Greedy)
- Factorial
- Sum of Digits
- Fibonacci
- Fibonacci (Memoized)
- Power(x, n)
- Tower of Hanoi
- Jump Game
- Gas Station
- Merge Intervals
- Insert Interval
- Non-overlapping Intervals
- Activity Selection
- Fractional Knapsack
Low-Level Design
- Vending Machine
- State Machine Framework
- ATM Machine
- Elevator System
- Traffic Signal Controller
- Booking Framework
- Parking Lot
- Movie Ticket Booking
- Library Management
- Hotel Reservation
- Meeting Room Scheduler
- In-Memory Design Framework
- LRU Cache
- Rate Limiter
- Key-Value Store
- Autocomplete / Typeahead
- Money & Ledger Framework
- Splitwise — Expense Sharing
- Digital Wallet
- Payment Gateway
- Matching & Dispatch Framework
- Cab Booking (Uber/Ola)
- Food Delivery
- Board Games Framework
- Tic-Tac-Toe
- Snakes & Ladders
- Chess
- Classes & Objects
- State vs. Behavior
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism
- Object Relationships
- General Design Principles
- SOLID Principles
- Strategy Pattern
- Observer Pattern
- State Pattern
- Factory Pattern
- Abstract Factory Pattern
- Decorator Pattern
- Builder Pattern
- Adapter Pattern
- Facade Pattern
- Proxy Pattern
- Bridge Pattern
- Composite Pattern
- Flyweight Pattern
- Command Pattern
- Chain of Responsibility Pattern
- Template Method Pattern
- Iterator Pattern
- Mediator Pattern
- Memento Pattern
- Visitor Pattern
- Interpreter Pattern