coda
Home
Academy
Coding
Leaderboard
Contact
Coding Practice
Solve algorithmic problems to earn knowledge and unlock badges.
All Levels
Knowledge
Title
Difficulty ↑
Knowledge
Bubble Sort an Array
Bubble Sort
Merge Two Sorted Arrays
Merge Sort
Insertion Sort
Find First and Last Position
Linear Search
Nth Fibonacci Number
Fibonacci
Reverse a Singly Linked List
Singly Linked List
Valid Parentheses
Stack
Two Sum Using Hash Map
Hash Table with Chaining
First Unique Character in a String
Hash Table with Open Addressing
Skip List Optimal Level Count
Skip List
Split a Multi-Responsibility Function
Single Responsibility Principle
Extensible Area Calculator
Open/Closed Principle
Device Capability Router
Interface Segregation Principle
Pluggable Notification System
Dependency Inversion Principle
Eliminate Discount Duplication
DRY - Don't Repeat Yourself
Simplify a Validator
KISS - Keep It Simple, Stupid
Build Only What You Need
YAGNI - You Aren't Gonna Need It
Guard Clause Validator
Fail Fast
Apply Sensible Defaults
Convention Over Configuration
Class Registry
Classes & Objects
Pure Calculator
Pure Functions
Print in Order
Async/Await Pattern
Parse URL
HTTP/HTTPS
REST API
SQL SELECT Simulator
Tables, Rows & Columns
Two Sum II - Sorted Array
Two Pointers
Maximum Sum Subarray of Size K
Sliding Window
Power of N
Divide and Conquer
Recursion
Move Zeroes
Array Operations
GCD of Array
GCD and LCM
Pascal's Triangle
Combinatorics
Insertion Sort a Linked List
Insertion Sort
Sort Colors (Dutch National Flag)
Selection Sort
Relative Sort Array
Counting Sort
Path Exists in Graph (DFS)
Depth-First Search
Validate Binary Search Tree
Binary Search Tree
Lowest Common Ancestor in BST
Binary Search Tree
Find K Largest Elements
Binary Heap
One Edit Away
Edit Distance
House Robber
House Robber
Detect Cycle in Linked List
Singly Linked List
Reverse a Doubly Linked List
Doubly Linked List
Doubly Linked List Palindrome Check
Doubly Linked List
Split Circular Linked List
Circular Linked List
Evaluate Reverse Polish Notation
Stack
Implement Queue Using Stacks
Queue
Implement Deque
Deque
Bloom Filter False Positive Rate
Bloom Filter
Reverse a String In-Place
Stack
Check If String Is Palindrome
Stack
Rotate Array by K Positions
Stack
Two Sum in Sorted Array
Stack
Check Balanced Brackets
Stack
Singleton Logger
Singleton
Shape Factory
Factory Method
Temperature Adapter
Adapter
Text Formatter Decorator
Decorator
Order Processing Facade
Facade
Character Flyweight Counter
Flyweight
Caching Proxy
Proxy
Notification Factory
Factory Method
Safe Type Substitution
Liskov Substitution Principle
Create a Reusable Formatter
DRY - Don't Repeat Yourself
Compose Entity Abilities
Composition Over Inheritance
Flatten Nested Access
Law of Demeter
Infer from Convention
Convention Over Configuration
Secure Wallet
Encapsulation
Shape Hierarchy
Inheritance
Animal Sounds
Polymorphism
Immutable Update
Immutability
Counter Factory
Closures
Collection Ops
Map, Filter, Reduce
Event Emitter
Event Loop
Async Parallel Limit
Async/Await Pattern
Thread Pool
Thread-Safe Counter
Mutex & Locks
Race Conditions
IP Address Validator
TCP vs UDP
Inner Join Implementation
SQL Joins
Generate Subsets
Backtracking
Next Greater Element
Monotonic Stack
Activity Selection
Greedy Algorithms
Rotate Array
Array Operations
Reverse Words in a String
String Manipulation
Count Primes
Sieve of Eratosthenes
Quick Sort an Array
Quick Sort
Merge Sort an Array
Merge Sort
Find Peak Element
Binary Search
Shortest Path in Unweighted Graph
Breadth-First Search
Kth Smallest Element in BST
Binary Search Tree
Check if Tree is Height-Balanced
AVL Tree
Autocomplete with Trie
Trie
Shortest Path in Weighted Graph
Dijkstra's Algorithm
Network Delay Time
Dijkstra's Algorithm
Connect All Cities with Minimum Cost
Prim's MST
Course Schedule Order
Topological Sort
Count Connected Components
Connected Components
Longest Common Subsequence
Longest Common Subsequence
Coin Change - Minimum Coins
Coin Change
Coin Change - Number of Ways
Coin Change
Longest Increasing Subsequence
Longest Increasing Subsequence
Josephus Problem
Circular Linked List
Min Stack - Get Minimum in O(1)
Stack
Group Anagrams
Hash Table with Chaining
Number of Connected Components
Union-Find / Disjoint Set
Maximum Subarray Sum
Stack
Next Greater Element
Stack
Circular Queue Operations
Queue
Task Scheduler with Cooldown
Binary Heap
Queue
Kth Smallest Using Min Heap
Binary Heap
UI Theme Factory
Abstract Factory
SQL Query Builder
Builder
Prototype Object Cloner
Prototype
Shape Renderer Bridge
Bridge
File System Size Calculator
Composite
Nested Array Flatten Iterator
Iterator
Traffic Light State Machine
State
Configurable Sorter Strategy
Strategy
Pricing Strategy
Strategy
Org Chart Salary Total
Composite
Build a Processing Pipeline
Separation of Concerns
Data Store
Abstraction
Employee Bonus
Method Overriding
Function Transformer
Higher-Order Functions
Curried Math
Currying
Recursive Flatten
Recursion in FP
Rate Limiter (Token Bucket)
Semaphores
Producer-Consumer Queue
Producer-Consumer Problem
Mutex & Locks
Task Scheduler with Cooldown
Concurrency vs Parallelism
HTTP Status Router
HTTP/HTTPS
REST API
DNS Cache with TTL
DNS
Normalize a Table
Normalization
Container With Most Water
Two Pointers
Longest Substring Without Repeating Characters
Sliding Window
Subarray Sum Equals K (Prefix Sum)
Prefix Sum
Generate Permutations
Backtracking
Merge Intervals
Interval Problems
Generate Parentheses
Backtracking
Recursion
Spiral Matrix
Matrix Traversal
Two-Dimensional Arrays
Heap Sort an Array
Heap Sort
Top K Frequent Elements
Heap Sort
Number of Islands
Depth-First Search
Word Search with Wildcards
Trie
Cheapest Flights Within K Stops
Dijkstra's Algorithm
Shortest Path with Negative Weights
Bellman-Ford
All-Pairs Shortest Paths
Floyd-Warshall
Minimum Spanning Tree Cost
Kruskal's MST
MST Using Prim's Algorithm
Prim's MST
0/1 Knapsack
0/1 Knapsack
Print Longest Common Subsequence
Longest Common Subsequence
Coin Change - Reconstruct Solution
Coin Change
Edit Distance (Levenshtein)
Edit Distance
Subarray Sum Equals K
Hash Table with Open Addressing
Redundant Connection
Union-Find / Disjoint Set
Bloom Filter Membership Check
Bloom Filter
Skip List Search Simulation
Skip List
All Root-to-Leaf Paths
Depth-First Search
Binary Search Tree
Diameter of Binary Tree
Depth-First Search
Binary Search Tree
Check If Graph Is Bipartite
Breadth-First Search
Depth-First Search
House Robber
Fibonacci
Decode Ways
Fibonacci
Support Ticket Chain
Chain of Responsibility
Text Editor with Undo
Command
Chatroom Mediator
Mediator
State Snapshot Manager
Memento
Event Emitter
Observer
Data Pipeline Template
Template Method
HTTP Middleware Decorator
Decorator
Vending Machine State
State
Notification System
Interfaces & Abstract Classes
Game Character
Association & Composition
Pipeline
Function Composition
Read-Write Lock
Readers-Writers Problem
Mutex & Locks
Deadlock Detector
Deadlock
Packet Reassembly
TCP vs UDP
OSI Model
Build a Simple Index
Indexing
Transaction Log Replay
ACID Properties
Transactions
Kth Largest Element (Quick Select)
Quick Sort
Search in Rotated Sorted Array
Binary Search
Detect Cycle in Directed Graph
Depth-First Search
Minimum Knight Moves
Breadth-First Search
AVL Insertion Balance Factors
AVL Tree
Range Sum Query with Updates
Segment Tree
Range Minimum Query
Segment Tree
City Reachability Within Distance Threshold
Floyd-Warshall
Unbounded Knapsack
0/1 Knapsack
Sliding Window Maximum
Queue
Serialize and Deserialize Binary Tree
Breadth-First Search
Binary Search Tree
Shortest Bridge Between Two Islands
Breadth-First Search
Depth-First Search
Word Ladder Transformation
Breadth-First Search
Longest Increasing Subsequence
Fibonacci
0/1 Knapsack
Partition Equal Subset Sum
0/1 Knapsack
Expression Tree Visitor
Visitor
Reactive Computed Values
Observer
Calculator with Undo/Redo
Command
Dining Philosophers
Deadlock
Semaphores
Count Inversions
Merge Sort
Maximum Gap
Radix Sort
Currency Arbitrage Detection
Bellman-Ford
Word Break II
Fibonacci
Depth-First Search
Trapping Rain Water
Stack
Merge K Sorted Arrays
Binary Heap
Mini Calculator Interpreter
Interpreter
Alien Dictionary
Topological Sort
Critical and Pseudo-Critical MST Edges
Kruskal's MST
Regular Expression Matching
Fibonacci
Edit Distance
202 problems