Every problem, by pattern
299 runnable problems, grouped by the pattern each one teaches rather than by difficulty. Reading trains recognition; these train recall — which is the one an interview actually asks for.
Showing all 299
Setup & mental model
JavaScript · 1 problem
- Fix the temporal dead zone bugbeginner3 tests
Types & values
JavaScript · 3 problems
- Fix typeof's two liesbeginner4 tests
- Keep only the truthy valuesbeginner4 tests
- Copy without sharingbeginner4 tests
Operators & flow
JavaScript · 1 problem
- Defaults that respect 0beginner5 tests
Functions (first half)
JavaScript · 2 problems
- Find the line break that ate the return valuebeginner3 tests
- Sum any number of argumentsbeginner4 tests
Objects & arrays (first half)
JavaScript · 2 problems
- Total up a shopping cartbeginner4 tests
- Format an address, safelybeginner4 tests
DOM & events
JavaScript · 1 problem
- Build a mini event emitterbeginner4 tests
Basic async
JavaScript · 2 problems
- Wrap setTimeout in a promisebeginner3 tests
- Clean an object for storagebeginner3 tests
Errors & tools
JavaScript · 2 problems
- Parse JSON without crashingbeginner3 tests
- Throw a real, typed errorbeginner3 tests
Scope & functions, properly
JavaScript · 4 problems
- 3 3 3 → 0 1 2beginner2 tests
- A counter nobody can cheatbeginner5 tests
- once() — run it a single timeintermediate5 tests
- A function that returns a functionintermediate5 tests
Objects deeply
JavaScript · 3 problems
- groupBy with reduceintermediate5 tests
- sort() without wrecking the originalintermediate4 tests
- Set to dedupe, Map to countintermediate4 tests
Prototypes & OOP
JavaScript · 1 problem
- extends, super, and the chainadvanced5 tests
Async, properly
JavaScript · 3 problems
- Sync, microtask, macrotaskintermediate3 tests
- Three awaits in a row → one waitadvanced3 tests
- retry() a flaky promiseadvanced4 tests
Modules & tooling
JavaScript · 2 problems
- Does this version satisfy a caret range?intermediate5 tests
- Build a left-to-right pipeintermediate3 tests
Regex, dates & browser APIs
JavaScript · 2 problems
- Pull every hashtag out of a postintermediate3 tests
- Read one query parameter from a URLintermediate3 tests
Error handling & debugging
JavaScript · 2 problems
- Chain a caught error into a new oneintermediate2 tests
- Update state without mutating itintermediate3 tests
Real-time connections
JavaScript · 2 problems
- Exponential backoff, cappedintermediate5 tests
- Track reconnect attempts, and know when to give upintermediate2 tests
Offline & storage
JavaScript · 2 problems
- A cache-first lookup, the shape a service worker usesintermediate2 tests
- Pick the right storage for the jobintermediate4 tests
Engine & memory
JavaScript · 1 problem
- Attach data without leakingadvanced5 tests
Advanced async
JavaScript · 2 problems
- Take N values from any iterableadvanced4 tests
- Cap how many tasks run at onceadvanced2 tests
Metaprogramming
JavaScript · 2 problems
- A Fibonacci class you can spreadadvanced3 tests
- An array that rejects non-positive numbersadvanced3 tests
Types & data
JavaScript · 2 problems
- A factorial that doesn't lose precisionadvanced4 tests
- Count actual characters, not code unitsadvanced4 tests
Patterns & architecture
JavaScript · 2 problems
- An order that can't skip statesadvanced3 tests
- Compose functions, right to leftadvanced2 tests
Performance
JavaScript · 2 problems
- A cache that can't grow foreveradvanced2 tests
- Process a big array in chunksadvanced3 tests
Security
JavaScript · 4 problems
- Escape text before it becomes HTMLadvanced4 tests
- Fix the merge so it can't pollute Object.prototypeadvanced2 tests
- Decode a JWT payload — no secret requiredadvanced1 test
- Check token expiry with an injectable clockadvanced2 tests
Ecosystem & professional
JavaScript · 2 problems
- Write your own Array.prototype.flatadvanced4 tests
- Count nodes of one type in a treeadvanced2 tests
Testing
JavaScript · 2 problems
- Make it testable: extract the pure partadvanced4 tests
- Inject the clock instead of calling Date.now directlyadvanced3 tests
Complexity analysis
DSA in JS · 3 problems
- Classify a Function's Growth Ratebeginner5 tests
- Rewrite a Nested Loop as a Linear Scanbeginner5 tests
- Count the Comparisons Exactlybeginner4 tests
Arrays & strings
DSA in JS · 24 problems
- Best Time to Buy and Sell Stockbeginner5 tests
- Maximum Subarrayintermediate5 tests
- Merge Sorted Array In Placeintermediate5 tests
- Remove Duplicates from Sorted Arraybeginner5 tests
- Rotate Array by Kintermediate5 tests
- Product of Array Except Selfintermediate5 tests
- Majority Elementintermediate5 tests
- Move Zeroesbeginner5 tests
- Contains Duplicatebeginner5 tests
- Find the Missing Numberbeginner5 tests
- Find All Numbers Disappeared in an Arrayintermediate5 tests
- Subarray Sum Equals Kadvanced5 tests
- Continuous Subarray Sumadvanced5 tests
- Maximum Size Subarray Sum Equals Kadvanced5 tests
- Contiguous Arrayintermediate5 tests
- Find Pivot Indexbeginner5 tests
- Range Sum Query — Immutableintermediate5 tests
- Longest Common Prefixbeginner5 tests
- Reverse String In Placebeginner4 tests
- Reverse Words in a Stringintermediate5 tests
- String to Integer (atoi)advanced5 tests
- Integer to Romanintermediate4 tests
- Roman to Integerbeginner4 tests
- Zigzag Conversionadvanced5 tests
Hashing
DSA in JS · 13 problems
- Two Sumbeginner5 tests
- Top K Frequent Elementsintermediate5 tests
- Longest Consecutive Sequenceadvanced5 tests
- Happy Numberbeginner5 tests
- Ransom Notebeginner5 tests
- Intersection of Two Arraysbeginner5 tests
- Intersection of Two Arrays IIintermediate5 tests
- First Unique Character in a Stringbeginner5 tests
- Word Frequency Top-Kintermediate5 tests
- Valid Anagrambeginner5 tests
- Group Anagramsintermediate5 tests
- Isomorphic Stringsintermediate5 tests
- Word Patternintermediate5 tests
Two pointers
DSA in JS · 12 problems
- Sort Colorsintermediate5 tests
- Next Permutationadvanced5 tests
- Trapping Rain Wateradvanced5 tests
- Container With Most Waterintermediate5 tests
- Valid Palindromebeginner5 tests
- Longest Palindromic Substringadvanced5 tests
- Two Sum II — Input Array Is Sortedbeginner5 tests
- 3Sumintermediate5 tests
- 4Sumadvanced5 tests
- Squares of a Sorted Arraybeginner5 tests
- Backspace String Compareintermediate5 tests
- Merge Two Sorted Arraysbeginner5 tests
Sliding window
DSA in JS · 10 problems
- Longest Substring Without Repeating Charactersintermediate5 tests
- Minimum Window Substringadvanced5 tests
- Find All Anagrams in a Stringintermediate5 tests
- Longest Repeating Character Replacementadvanced5 tests
- Permutation in Stringintermediate5 tests
- Minimum Size Subarray Sumintermediate5 tests
- Fruit Into Basketsintermediate5 tests
- Subarray Product Less Than Kadvanced5 tests
- Max Consecutive Ones IIIintermediate5 tests
- Longest Continuous Subarray With Absolute Diff <= Limitadvanced5 tests
Binary search
DSA in JS · 15 problems
- Binary Searchbeginner5 tests
- Search Insert Positionbeginner5 tests
- Search a 2D Matrixintermediate4 tests
- First and Last Position of a Valueintermediate5 tests
- Search in Rotated Sorted Arrayintermediate4 tests
- Search in Rotated Sorted Array IIadvanced4 tests
- Find Minimum in Rotated Sorted Arrayintermediate4 tests
- Find Peak Elementintermediate5 tests
- Koko Eating Bananasadvanced5 tests
- Capacity to Ship Packages Within D Daysadvanced5 tests
- Split Array Largest Sumadvanced5 tests
- Median of Two Sorted Arraysadvanced5 tests
- Integer Square Rootbeginner4 tests
- Valid Perfect Squarebeginner4 tests
- Find the Duplicate Numberadvanced5 tests
Sorting algorithms
DSA in JS · 4 problems
- Merge Sortintermediate5 tests
- Kth Largest Element — Quickselectadvanced5 tests
- Sort an Arrayintermediate5 tests
- Largest Numberintermediate5 tests
Stacks & queues
DSA in JS · 9 problems
- Min Stackbeginner4 tests
- Implement Queue using Stacksbeginner4 tests
- Implement Stack using Queuesbeginner4 tests
- Asteroid Collisionintermediate5 tests
- Evaluate Reverse Polish Notationbeginner5 tests
- Basic Calculatoradvanced5 tests
- Basic Calculator IIintermediate5 tests
- Valid Parenthesesbeginner5 tests
- Decode Stringintermediate5 tests
Linked lists
DSA in JS · 20 problems
- Reverse Linked Listbeginner5 tests
- Merge Two Sorted Listsbeginner5 tests
- Linked List Cyclebeginner5 tests
- Linked List Cycle IIintermediate5 tests
- Middle of the Linked Listbeginner5 tests
- Remove Nth Node From Endintermediate5 tests
- Palindrome Linked Listadvanced5 tests
- Intersection of Two Linked Listsintermediate5 tests
- Add Two Numbersintermediate5 tests
- Merge K Sorted Listsadvanced5 tests
- Copy List with Random Pointeradvanced5 tests
- Reorder Listintermediate5 tests
- Swap Nodes in Pairsintermediate5 tests
- Reverse Nodes in k-Groupadvanced5 tests
- Rotate Listintermediate5 tests
- Partition Listintermediate5 tests
- Remove Duplicates from Sorted Listbeginner5 tests
- Delete Node in a Linked Listbeginner5 tests
- Sort Listadvanced5 tests
- Flatten a Multilevel Doubly Linked Listadvanced5 tests
Basic recursion
DSA in JS · 4 problems
- Fibonacci with Memoisationbeginner5 tests
- Pow(x, n) — Fast Exponentiationintermediate5 tests
- Generate All Subsetsbeginner5 tests
- Flatten a Deeply Nested Arraybeginner5 tests
Trees
DSA in JS · 6 problems
- Maximum Depth of Binary Treebeginner5 tests
- Same Treebeginner5 tests
- Symmetric Treebeginner5 tests
- Invert Binary Treebeginner5 tests
- Binary Tree Level Order Traversalbeginner5 tests
- Path Sumbeginner5 tests
Tree problems in depth
DSA in JS · 14 problems
- Binary Tree Zigzag Level Order Traversalintermediate5 tests
- Binary Tree Right Side Viewintermediate5 tests
- Diameter of Binary Treeintermediate5 tests
- Balanced Binary Treeintermediate5 tests
- Lowest Common Ancestor of a Binary Treeadvanced5 tests
- Validate Binary Search Treeadvanced5 tests
- Kth Smallest Element in a BSTintermediate5 tests
- Lowest Common Ancestor of a BSTintermediate5 tests
- Convert Sorted Array to BSTintermediate5 tests
- Construct Binary Tree from Preorder and Inorder Traversaladvanced5 tests
- Serialize and Deserialize Binary Treeadvanced5 tests
- Path Sum IIintermediate5 tests
- Binary Tree Maximum Path Sumadvanced5 tests
- Populating Next Right Pointers in Each Nodeadvanced5 tests
Heaps & priority queues
DSA in JS · 13 problems
- Kth Largest Element in an Arrayintermediate5 tests
- Find Median from Data Streamadvanced5 tests
- K Closest Points to Originintermediate5 tests
- Last Stone Weightbeginner5 tests
- Task Scheduleradvanced5 tests
- Sort Characters By Frequencyintermediate5 tests
- Reorganize Stringadvanced5 tests
- Smallest Range Covering Elements from K Listsadvanced5 tests
- Find K Pairs with Smallest Sumsadvanced5 tests
- IPO — Maximise Capitaladvanced5 tests
- Maximum Performance of a Teamadvanced5 tests
- Minimum Cost to Connect Sticksintermediate5 tests
- Furthest Building You Can Reachadvanced5 tests
Graphs: representation & traversal
DSA in JS · 5 problems
- Number of Islandsbeginner5 tests
- Max Area of Islandintermediate5 tests
- Clone Graphintermediate5 tests
- Rotting Orangesintermediate5 tests
- Surrounded Regionsintermediate5 tests
Graph problems
DSA in JS · 2 problems
- Pacific Atlantic Water Flowadvanced5 tests
- Word Ladderadvanced5 tests
Backtracking
DSA in JS · 7 problems
- Subsetsintermediate5 tests
- Permutationsbeginner5 tests
- Combination Sumintermediate5 tests
- Combination Sum IIadvanced5 tests
- Word Searchadvanced5 tests
- Palindrome Partitioningintermediate5 tests
- Letter Combinations of a Phone Numberintermediate5 tests
Dynamic programming: 1D
DSA in JS · 10 problems
- Climbing Stairsbeginner5 tests
- House Robberbeginner5 tests
- House Robber IIadvanced5 tests
- Coin Changeintermediate5 tests
- Coin Change IIintermediate5 tests
- Longest Increasing Subsequenceintermediate5 tests
- Word Breakintermediate5 tests
- Decode Waysintermediate5 tests
- Maximum Product Subarrayintermediate5 tests
- Partition Equal Subset Sumadvanced5 tests
Dynamic programming: 2D
DSA in JS · 5 problems
- Unique Pathsbeginner5 tests
- Unique Paths IIintermediate5 tests
- Minimum Path Sumintermediate5 tests
- Longest Common Subsequenceintermediate5 tests
- Edit Distanceadvanced5 tests
Greedy algorithms
DSA in JS · 5 problems
- Gas Stationadvanced5 tests
- Jump Gameintermediate5 tests
- Jump Game IIadvanced5 tests
- Candyadvanced5 tests
- Partition Labelsintermediate5 tests
Intervals
DSA in JS · 5 problems
- Merge Intervalsintermediate5 tests
- Insert Intervalintermediate5 tests
- Non-overlapping Intervalsintermediate5 tests
- Meeting Roomsbeginner5 tests
- Meeting Rooms IIintermediate5 tests
Bit manipulation
DSA in JS · 18 problems
- Single Numberbeginner4 tests
- Single Number IIadvanced5 tests
- Missing Numberbeginner5 tests
- Number of 1 Bitsbeginner5 tests
- Counting Bitsintermediate5 tests
- Reverse Bitsintermediate5 tests
- Power of Twobeginner4 tests
- Power of Fourintermediate4 tests
- Bitwise AND of Numbers Rangeadvanced5 tests
- Sum of Two Integersadvanced5 tests
- Divide Two Integersadvanced5 tests
- Gray Codeintermediate5 tests
- UTF-8 Validationadvanced5 tests
- Count Triplets That Can Form Two Arrays of Equal XORadvanced5 tests
- Minimum Flips to Make a OR b Equal to cintermediate5 tests
- Find XOR Sum of All Pairs Bitwise ANDadvanced5 tests
- Decode XORed Arraybeginner5 tests
- XOR Queries of a Subarrayintermediate5 tests
Matrix problems
DSA in JS · 4 problems
- Spiral Matrixbeginner5 tests
- Rotate Imageintermediate5 tests
- Set Matrix Zeroesadvanced5 tests
- Search a 2D Matrix IIadvanced5 tests
Advanced DP
DSA in JS · 6 problems
- Travelling Salesman (Bitmask DP)advanced5 tests
- Partition to K Equal Sum Subsetsadvanced5 tests
- Count Numbers With Strictly Increasing Digitsadvanced4 tests
- Burst Balloonsadvanced5 tests
- Minimum Cost to Cut a Stickadvanced4 tests
- House Robber IIIadvanced5 tests
Union-Find (Disjoint Set)
DSA in JS · 2 problems
- Number of Connected Components in an Undirected Graphintermediate5 tests
- Redundant Connectionadvanced5 tests
Advanced graph algorithms
DSA in JS · 2 problems
- Network Delay Timeadvanced5 tests
- Cheapest Flights Within K Stopsadvanced5 tests
Minimum Spanning Tree
DSA in JS · 1 problem
- Min Cost to Connect All Pointsadvanced5 tests
Tries
DSA in JS · 4 problems
- Maximum XOR of Two Numbers in an Arrayadvanced5 tests
- Implement Trie (Prefix Tree)intermediate5 tests
- Design Add and Search Wordsadvanced5 tests
- Word Search IIadvanced5 tests
Segment trees & Fenwick trees
DSA in JS · 5 problems
- Range Sum Query — Mutableadvanced5 tests
- Implement a Fenwick (Binary Indexed) Treeadvanced5 tests
- Range Minimum Query (Segment Tree)advanced5 tests
- Count of Smaller Numbers After Selfadvanced5 tests
- Range Sum Query 2D — Mutableadvanced5 tests
String algorithms
DSA in JS · 1 problem
- Implement indexOf (strStr)intermediate5 tests
Monotonic stack & queue in depth
DSA in JS · 5 problems
- Daily Temperaturesintermediate5 tests
- Next Greater Element Iintermediate5 tests
- Next Greater Element II (Circular)advanced5 tests
- Largest Rectangle in Histogramadvanced5 tests
- Maximal Rectangleadvanced5 tests
Design problems
DSA in JS · 5 problems
- LRU Cacheadvanced5 tests
- Design HashMapadvanced5 tests
- Time Based Key-Value Storeadvanced5 tests
- Insert Delete GetRandom O(1)advanced5 tests
- Encode and Decode Stringsadvanced5 tests
Advanced backtracking
DSA in JS · 1 problem
- N-Queens — Count the Solutionsadvanced5 tests
Topological patterns
DSA in JS · 3 problems
- Course Scheduleadvanced5 tests
- Course Schedule IIintermediate5 tests
- Alien Dictionaryadvanced5 tests
Interview strategy
DSA in JS · 2 problems
- Read the Constraint, Pick the Complexityintermediate4 tests
- Which Approaches Actually Fit?intermediate5 tests