All problems
Every problem on the roadmap is in this list. You can search it, or filter by topic, difficulty, or whether a problem is in the 147.
583 problems
Pattern147 DSA SheetSolve
70Best Time to Buy and Sell StockArrays and HashingOne pass with running state147 DSA SheetEasySolve
169Merge two sorted arrays without extra space (opens GFG)Two PointersMerging sorted arraysHardGFGGFG
170Longest Substring Without Repeating CharactersSliding WindowLongest or shortest window147 DSA SheetMediumSolve
172Longest Repeating Character ReplacementSliding WindowLongest or shortest window147 DSA SheetMediumSolve
173Longest Substring with At Most K Distinct Characters (opens LeetCode)Sliding WindowLongest or shortest windowMediumLeetCodeLC
175Minimum Size Subarray Sum (opens LeetCode)Sliding WindowLongest or shortest windowMediumLeetCodeLC
177Minimum Window Subsequence (opens LeetCode)Sliding WindowLongest or shortest windowHardLeetCodeLC
184Number of Substrings Containing All Three Characters (opens LeetCode)Sliding WindowCounting windowsMediumLeetCodeLC
186Implement a stack with an array (opens GFG)Stacks and QueuesBuilding stacks and queuesMediumGFGGFG
187Implement a queue with an array (opens GFG)Stacks and QueuesBuilding stacks and queuesMediumGFGGFG
188Implement a stack with a linked list (opens GFG)Stacks and QueuesBuilding stacks and queuesMediumGFGGFG
189Implement a queue with a linked list (opens GFG)Stacks and QueuesBuilding stacks and queuesMediumGFGGFG
190Implement Stack using Queues (opens LeetCode)Stacks and QueuesBuilding stacks and queuesEasyLeetCodeLC
191Implement Queue using Stacks (opens LeetCode)Stacks and QueuesBuilding stacks and queuesEasyLeetCodeLC
192Design Circular Queue (opens LeetCode)Stacks and QueuesBuilding stacks and queuesMediumLeetCodeLC
193Design Circular Deque (opens LeetCode)Stacks and QueuesBuilding stacks and queuesMediumLeetCodeLC
228Floor and ceil in a sorted arrayBinary SearchLower and upper boundsMediumComing soonSoon
229Find First and Last Position of Element in Sorted Array (opens LeetCode)Binary SearchLower and upper boundsMediumLeetCodeLC
231How many times is a sorted array rotated (opens GFG)Binary SearchLower and upper boundsMediumGFGGFG
232Peak Index in a Mountain Array (opens LeetCode)Binary SearchLower and upper boundsMediumLeetCodeLC
235Find Minimum in Rotated Sorted ArrayBinary SearchSearching a sorted array147 DSA SheetMediumSolve
236Search in Rotated Sorted Array II (opens LeetCode)Binary SearchSearching a sorted arrayMediumLeetCodeLC
237Single Element in a Sorted Array (opens LeetCode)Binary SearchSearching a sorted arrayMediumLeetCodeLC
245Find the Smallest Divisor Given a Threshold (opens LeetCode)Binary SearchSearching the answerMediumLeetCodeLC
246Minimum Number of Days to Make m Bouquets (opens LeetCode)Binary SearchSearching the answerMediumLeetCodeLC
247Capacity To Ship Packages Within D Days (opens LeetCode)Binary SearchSearching the answerMediumLeetCodeLC
252Minimize Max Distance to Gas Station (opens LeetCode)Binary SearchSearching the answerHardLeetCodeLC
255Kth Smallest Element in a Sorted Matrix (opens LeetCode)Binary SearchSearching a matrixMediumLeetCodeLC
258Median of a Row Wise Sorted Matrix (opens LeetCode)Binary SearchSearching a matrixMediumLeetCodeLC
266Insert at position KLinked ListsSingly linked list basicsMediumComing soonSoon
267Insert before the value XLinked ListsSingly linked list basicsMediumComing soonSoon
270Delete the K-th nodeLinked ListsSingly linked list basicsMediumComing soonSoon
271Delete the node with value XLinked ListsSingly linked list basicsMediumComing soonSoon
272Delete Node in a Linked List (opens LeetCode)Linked ListsSingly linked list basicsMediumLeetCodeLC
277Insert before the tailLinked ListsDoubly linked listsMediumComing soonSoon
278Insert before the K-th nodeLinked ListsDoubly linked listsMediumComing soonSoon
279Insert before a given nodeLinked ListsDoubly linked listsMediumComing soonSoon
281Delete the tailLinked ListsDoubly linked listsMediumComing soonSoon
282Delete the K-th nodeLinked ListsDoubly linked listsMediumComing soonSoon
283Delete a given nodeLinked ListsDoubly linked listsMediumComing soonSoon
286Remove duplicates from a sorted doubly linked list (opens GFG)Linked ListsDoubly linked listsMediumGFGGFG
287Pairs with a given sum in a doubly linked list (opens GFG)Linked ListsDoubly linked listsMediumGFGGFG
292Intersection of Two Linked Lists (opens LeetCode)Linked ListsFast and slow pointersEasyLeetCodeLC
295Delete the Middle Node of a Linked List (opens LeetCode)Linked ListsFast and slow pointersMediumLeetCodeLC
308Next Greater Node In Linked List (opens LeetCode)Linked ListsReversing and rewiringMediumLeetCodeLC
313Does a subsequence with sum K existRecursion and BacktrackingPick or skipMediumComing soonSoon
315Binary strings without consecutive 1s (opens GFG)Recursion and BacktrackingPick or skipMediumGFGGFG
316Reverse a stack with recursion (opens GFG)Recursion and BacktrackingRecursion on a stackMediumGFGGFG
317Sort a stack with recursion (opens GFG)Recursion and BacktrackingRecursion on a stackMediumGFGGFG
323Letter Combinations of a Phone NumberRecursion and BacktrackingGenerating every choice147 DSA SheetMediumSolve
327Permutations II (opens LeetCode)Recursion and BacktrackingGenerating every choiceMediumLeetCodeLC
328Combination Sum III (opens LeetCode)Recursion and BacktrackingGenerating every choiceMediumLeetCodeLC
335Beautiful Arrangement (opens LeetCode)Recursion and BacktrackingSearching with constraintsMediumLeetCodeLC
337Expression Add Operators (opens LeetCode)Recursion and BacktrackingSearching with constraintsHardLeetCodeLC
350Count Good Nodes in Binary Tree (opens LeetCode)Binary TreesDepth first: return a value upMediumLeetCodeLC
352Lowest Common Ancestor of a Binary TreeBinary TreesDepth first: return a value up147 DSA SheetMediumSolve
354Boundary of Binary Tree (opens LeetCode)Binary TreesDepth first: return a value upMediumLeetCodeLC
355Minimum Depth of Binary Tree (opens LeetCode)Binary TreesDepth first: return a value upEasyLeetCodeLC
360Sum Root to Leaf Numbers (opens LeetCode)Binary TreesDepth first: return a value upMediumLeetCodeLC
364Count Complete Tree Nodes (opens LeetCode)Binary TreesDepth first: return a value upMediumLeetCodeLC
365Flatten Binary Tree to Linked List (opens LeetCode)Binary TreesDepth first: return a value upMediumLeetCodeLC
367Binary Tree Level Order TraversalBinary TreesBreadth first: level by level147 DSA SheetMediumSolve
369Maximum Width of Binary Tree (opens LeetCode)Binary TreesBreadth first: level by levelMediumLeetCodeLC
370All Nodes Distance K in Binary TreeBinary TreesBreadth first: level by level147 DSA SheetMediumSolve
371Amount of Time for Binary Tree to Be Infected (opens LeetCode)Binary TreesBreadth first: level by levelMediumLeetCodeLC
372Vertical Order Traversal of a Binary Tree (opens LeetCode)Binary TreesBreadth first: level by levelHardLeetCodeLC
373Binary Tree Zigzag Level Order Traversal (opens LeetCode)Binary TreesBreadth first: level by levelMediumLeetCodeLC
374Binary Tree Level Order Traversal II (opens LeetCode)Binary TreesBreadth first: level by levelMediumLeetCodeLC
375Average of Levels in Binary Tree (opens LeetCode)Binary TreesBreadth first: level by levelEasyLeetCodeLC
376Populating Next Right Pointers in Each Node (opens LeetCode)Binary TreesBreadth first: level by levelMediumLeetCodeLC
379Construct Binary Tree from Preorder and Inorder TraversalBinary TreesBuilding and serializing147 DSA SheetMediumSolve
381Construct Binary Tree from Inorder and Postorder Traversal (opens LeetCode)Binary TreesBuilding and serializingMediumLeetCodeLC
386Convert Sorted Array to Binary Search Tree (opens LeetCode)Binary Search TreesBST basicsEasyLeetCodeLC
389Lowest Common Ancestor of a Binary Search TreeBinary Search TreesUsing the ordering147 DSA SheetMediumSolve
390Insert into a Binary Search Tree (opens LeetCode)Binary Search TreesUsing the orderingMediumLeetCodeLC
392Construct Binary Search Tree from Preorder Traversal (opens LeetCode)Binary Search TreesUsing the orderingMediumLeetCodeLC
398Binary Search Tree Iterator (opens LeetCode)Binary Search TreesUsing the orderingMediumLeetCodeLC
399Maximum Sum BST in Binary Tree (opens LeetCode)Binary Search TreesUsing the orderingHardLeetCodeLC
450Number of Connected Components in an Undirected Graph (opens LeetCode)GraphsTraversing a graphMediumLeetCodeLC
475Find the City With the Smallest Number of Neighbors at a Threshold Distance (opens LeetCode)Advanced GraphsWeighted shortest pathsMediumLeetCodeLC
480Number of Ways to Arrive at Destination (opens LeetCode)Advanced GraphsWeighted shortest pathsMediumLeetCodeLC
481Path with Maximum Probability (opens LeetCode)Advanced GraphsWeighted shortest pathsMediumLeetCodeLC
482Minimum multiplications to reach the end (opens GFG)Advanced GraphsWeighted shortest pathsHardGFGGFG
488Critical Connections in a Network (opens LeetCode)Advanced GraphsSpecial edges and pathsHardLeetCodeLC
489Strongly connected components (Kosaraju) (opens GFG)Advanced GraphsSpecial edges and pathsHardGFGGFG
505Minimum Number of Arrows to Burst Balloons (opens LeetCode)GreedyThe best choice nowMediumLeetCodeLC
523Minimum Cost For Tickets (opens LeetCode)1-D Dynamic ProgrammingTake it or skip itMediumLeetCodeLC
524Training schedule with no repeated activity (opens GFG)1-D Dynamic ProgrammingTake it or skip itMediumGFGGFG
527Longest Increasing Subsequence1-D Dynamic ProgrammingIncreasing subsequences147 DSA SheetMediumSolve
528Number of Longest Increasing Subsequence (opens LeetCode)1-D Dynamic ProgrammingIncreasing subsequencesMediumLeetCodeLC
529Print a longest increasing subsequence (opens GFG)1-D Dynamic ProgrammingIncreasing subsequencesHardGFGGFG
530Largest Divisible Subset (opens LeetCode)1-D Dynamic ProgrammingIncreasing subsequencesMediumLeetCodeLC
531Longest String Chain (opens LeetCode)1-D Dynamic ProgrammingIncreasing subsequencesMediumLeetCodeLC
532Longest bitonic subsequence (opens GFG)1-D Dynamic ProgrammingIncreasing subsequencesMediumGFGGFG
533Best Time to Buy and Sell Stock with Cooldown1-D Dynamic ProgrammingBuying and selling with states147 DSA SheetMediumSolve
534Best Time to Buy and Sell Stock with Transaction Fee (opens LeetCode)1-D Dynamic ProgrammingBuying and selling with statesMediumLeetCodeLC
535Best Time to Buy and Sell Stock IV (opens LeetCode)1-D Dynamic ProgrammingBuying and selling with statesHardLeetCodeLC
536Best Time to Buy and Sell Stock II (opens LeetCode)1-D Dynamic ProgrammingBuying and selling with statesMediumLeetCodeLC
537Best Time to Buy and Sell Stock III (opens LeetCode)1-D Dynamic ProgrammingBuying and selling with statesHardLeetCodeLC
544Count Square Submatrices with All Ones (opens LeetCode)2-D Dynamic ProgrammingPaths in a gridMediumLeetCodeLC
557Partition Array Into Two Arrays to Minimize Sum Difference (opens LeetCode)2-D Dynamic ProgrammingKnapsackHardLeetCodeLC
559Maximum Length of Repeated Subarray (opens LeetCode)2-D Dynamic ProgrammingTwo stringsMediumLeetCodeLC
561Longest Palindromic Subsequence (opens LeetCode)2-D Dynamic ProgrammingTwo stringsMediumLeetCodeLC
567Delete Operation for Two Strings (opens LeetCode)2-D Dynamic ProgrammingTwo stringsMediumLeetCodeLC
568Minimum Insertion Steps to Make a String Palindrome (opens LeetCode)2-D Dynamic ProgrammingTwo stringsHardLeetCodeLC
571Minimum ASCII Delete Sum for Two Strings (opens LeetCode)2-D Dynamic ProgrammingTwo stringsMediumLeetCodeLC
573Palindrome Partitioning II (opens LeetCode)2-D Dynamic ProgrammingSplitting a rangeHardLeetCodeLC
575Minimum Cost to Cut a Stick (opens LeetCode)2-D Dynamic ProgrammingSplitting a rangeHardLeetCodeLC
576Partition Array for Maximum Sum (opens LeetCode)2-D Dynamic ProgrammingSplitting a rangeMediumLeetCodeLC
577Ways to evaluate a boolean expression to true (opens GFG)2-D Dynamic ProgrammingSplitting a rangeHardGFGGFG
578Find the Index of the First Occurrence in a StringString MatchingPattern matching147 DSA SheetEasySolve