How To Use This List

Topics (650 Problems)

1. Arrays & Hashing (48) 2. Two Pointers (25) 3. Sliding Window (22) 4. Stack (28) 5. Binary Search (28) 6. Linked List (24) 7. Trees (42) 8. Tries (10) 9. Heap / Priority Queue (22) 10. Backtracking (22) 11. Graphs (38) 12. 1D Dynamic Programming (38) 13. 2D Dynamic Programming (22) 14. Greedy (28) 15. Intervals (14) 16. Math & Geometry (28) 17. Bit Manipulation (18) 18. Union Find (12) 19. Design (14) 20. String (30) 21. Sorting (15) 22. Prefix Sum (14) 23. Matrix (15) 24. Recursion (12) 25. Mixed Hard Problems (81)

1. Arrays & Hashing (48)

#ProblemDifficultyPattern
1Two SumEasyHash Map
2Contains DuplicateEasyHash Set
3Valid AnagramEasyFrequency Count
4Concatenation of ArrayEasyArray Basics
5Replace Elements with Greatest on RightEasyRight to Left
6Is SubsequenceEasyTwo Pointers
7Length of Last WordEasyString
8Longest Common PrefixEasyString
9Pascal's TriangleEasySimulation
10Remove ElementEasyIn-Place
11Majority ElementEasyBoyer-Moore
12Roman to IntegerEasyHash Map
13Missing NumberEasyMath / XOR
14Next Greater Element IEasyStack + Map
15Unique Email AddressesEasyString + Set
16Remove Duplicates from Sorted ArrayEasyIn-Place
17Range Sum Query - ImmutableEasyPrefix Sum
18Group AnagramsMediumHash Map
19Top K Frequent ElementsMediumBucket Sort
20Product of Array Except SelfMediumPrefix/Suffix
21Valid SudokuMediumHash Set
22Encode and Decode StringsMediumDesign
23Longest Consecutive SequenceMediumHash Set
24Sort ColorsMediumDutch Flag
25Subarray Sum Equals KMediumPrefix Sum + Map
26Find All Anagrams in a StringMediumSliding Window
27Determine if Two Strings Are CloseMediumFrequency
28Custom Sort StringMediumHash Map
29Hand of StraightsMediumGreedy + Map
30Insert Delete GetRandom O(1)MediumHash Map + Array
31Repeated DNA SequencesMediumHash Set
32Integer to RomanMediumGreedy
33Rotate ArrayMediumReverse Trick
34Brick WallMediumHash Map
35Push DominoesMediumTwo Pointers
36Remove Duplicates from Sorted Array IIMediumIn-Place
37Best Time to Buy and Sell Stock IIMediumGreedy
38Spiral MatrixMediumSimulation
39Set Matrix ZeroesMediumIn-Place
40Game of LifeMediumSimulation
41H-IndexMediumSorting / Counting
42Range Sum Query 2DMediumPrefix Sum 2D
43Min Swaps for Balanced StringMediumGreedy
44Spiral Matrix IIMediumSimulation
45Contiguous ArrayMediumPrefix Sum + Map
46First Missing PositiveHardIndex as Hash
47Naming a CompanyHardHash Set
48Text JustificationHardSimulation

2. Two Pointers (25)

#ProblemDifficultyPattern
49Valid PalindromeEasyTwo Pointers
50Two Sum IIMediumTwo Pointers
513SumMediumSort + Two Ptr
52Container With Most WaterMediumTwo Pointers
53Move ZeroesEasyTwo Pointers
54Merge Sorted ArrayEasyTwo Pointers
55Reverse StringEasyTwo Pointers
56Squares of a Sorted ArrayEasyTwo Pointers
57Assign CookiesEasyGreedy + Sort
58Backspace String CompareEasyTwo Pointers
59Intersection of Two Arrays IIEasyHash Map
603Sum ClosestMediumSort + Two Ptr
61Boats to Save PeopleMediumSort + Two Ptr
62Partition LabelsMediumGreedy
634SumMediumSort + Two Ptr
64Sort Array By ParityEasyTwo Pointers
65Longest Word in Dict by DeletingMediumTwo Pointers
66Min Diff Between K ScoresEasySort + Window
67Two Sum IV - BSTEasyBST + Set
68Subsequences with Sum ConditionMediumSort + Two Ptr
69Bag of TokensMediumSort + Two Ptr
70String CompressionMediumTwo Pointers
714Sum IIMediumHash Map
72Trapping Rain WaterHardTwo Pointers
73Shortest Unsorted SubarrayMediumTwo Pointers

3. Sliding Window (22)

#ProblemDifficultyPattern
74Best Time to Buy and Sell StockEasySliding Window
75Contains Duplicate IIEasyHash Set Window
76Longest Substring Without Repeating CharsMediumSliding Window
77Longest Repeating Char ReplacementMediumSliding Window
78Permutation in StringMediumSliding Window
79Minimum Size Subarray SumMediumSliding Window
80Fruit Into BasketsMediumSliding Window
81Max Vowels in SubstringMediumFixed Window
82Grumpy Bookstore OwnerMediumFixed Window
83Max Consecutive Ones IIIMediumSliding Window
84Equal Substrings Within BudgetMediumSliding Window
85Count Nice SubarraysMediumSliding Window
86Binary Subarrays With SumMediumPrefix Sum / Window
87Frequency of Most Frequent ElementMediumSort + Window
88Max Points from CardsMediumSliding Window
89Maximum Erasure ValueMediumSliding Window
90Min Flips for Alternating StringMediumSliding Window
91Minimum Window SubstringHardSliding Window
92Sliding Window MaximumHardMonotonic Deque
93Substring with Concat of All WordsHardSliding Window
94Subarrays with K Different IntegersHardSliding Window
95Count Subarrays Max Appears K TimesMediumSliding Window

4. Stack (28)

#ProblemDifficultyPattern
96Valid ParenthesesEasyStack
97Implement Queue using StacksEasyStack
98Implement Stack using QueuesEasyQueue
99Baseball GameEasyStack
100Min StackMediumStack Design
101Evaluate Reverse Polish NotationMediumStack
102Daily TemperaturesMediumMonotonic Stack
103Car FleetMediumStack + Sort
104Asteroid CollisionMediumStack
105Decode StringMediumStack
106Removing Stars From a StringMediumStack
107Online Stock SpanMediumMonotonic Stack
108132 PatternMediumMonotonic Stack
109Simplify PathMediumStack
110Remove Adjacent Duplicates IIMediumStack
111Remove K DigitsMediumMonotonic Stack
112Validate Stack SequencesMediumStack Simulation
113Flatten Nested List IteratorMediumStack
114Basic Calculator IIMediumStack
115Next Greater Element IIMediumMonotonic Stack
116Sum of Subarray MinimumsMediumMonotonic Stack
117Sum of Subarray RangesMediumMonotonic Stack
118Largest Rectangle in HistogramHardMonotonic Stack
119Maximal RectangleHardStack + DP
120Basic CalculatorHardStack + Recursion
121Longest Valid ParenthesesHardStack / DP
122Maximum Frequency StackHardStack + Map
123Visible People in QueueHardMonotonic Stack

6. Linked List (24)

#ProblemDifficultyPattern
152Reverse Linked ListEasyReversal
153Merge Two Sorted ListsEasyTwo Pointers
154Linked List CycleEasyFast/Slow
155Palindrome Linked ListEasyFast/Slow + Reverse
156Remove Linked List ElementsEasyDummy Node
157Intersection of Two ListsEasyTwo Pointers
158Middle of the Linked ListEasyFast/Slow
159Reorder ListMediumFast/Slow + Reverse
160Remove Nth Node From EndMediumTwo Pointers
161Add Two NumbersMediumMath + LL
162Copy List with Random PointerMediumHash Map
163LRU CacheMediumDLL + Hash Map
164Swap Nodes in PairsMediumPointer Manipulation
165Sort ListMediumMerge Sort
166Partition ListMediumTwo Lists
167Linked List Cycle IIMediumFast/Slow
168Delete Middle NodeMediumFast/Slow
169Odd Even Linked ListMediumPointer Manipulation
170Add Two Numbers IIMediumStack + LL
171Rotate ListMediumCycle + Count
172Remove Duplicates IIMediumDummy Node
173Flatten Multilevel DLLMediumDFS / Stack
174Merge k Sorted ListsHardHeap / Divide & Conquer
175Reverse Nodes in k-GroupHardReversal

7. Trees (42)

#ProblemDifficultyPattern
176Invert Binary TreeEasyDFS
177Maximum Depth of Binary TreeEasyDFS
178Same TreeEasyDFS
179Subtree of Another TreeEasyDFS
180Diameter of Binary TreeEasyDFS
181Balanced Binary TreeEasyDFS
182Path SumEasyDFS
183Symmetric TreeEasyDFS / BFS
184Minimum Depth of Binary TreeEasyBFS
185Sorted Array to BSTEasyDivide & Conquer
186Binary Tree Inorder TraversalEasyDFS
187Binary Tree Preorder TraversalEasyDFS
188Count Good NodesMediumDFS
189Level Order TraversalMediumBFS
190Right Side ViewMediumBFS
191Validate BSTMediumDFS + Bounds
192Kth Smallest in BSTMediumInorder
193Build Tree from Preorder + InorderMediumDivide & Conquer
194LCA of Binary TreeMediumDFS
195LCA of BSTMediumBST Property
196Zigzag Level OrderMediumBFS
197Path Sum IIMediumDFS + Backtrack
198Path Sum IIIMediumPrefix Sum + DFS
199Sum Root to Leaf NumbersMediumDFS
200BST IteratorMediumStack + Inorder
201Next Right PointersMediumBFS
202House Robber IIIMediumDFS + DP
203All Nodes Distance KMediumBFS + Parent Map
204Flatten Tree to LLMediumDFS
205Max Width of Binary TreeMediumBFS + Indexing
206Time for Tree to Be InfectedMediumBFS + Parent Map
207Delete Node in BSTMediumBST Operations
208Trim a BSTMediumDFS
209Unique BSTsMediumDP (Catalan)
210Count Complete Tree NodesMediumBinary Search
211Recover BSTMediumInorder
212Build from Inorder + PostorderMediumDivide & Conquer
213Binary Tree Max Path SumHardDFS
214Serialize and Deserialize TreeHardBFS / DFS
215Vertical Order TraversalHardBFS + Sort
216Binary Tree CamerasHardGreedy DFS
217Maximum Sum BSTHardDFS

8. Tries (10)

#ProblemDifficultyPattern
218Implement TrieMediumTrie
219Add and Search WordsMediumTrie + DFS
220Replace WordsMediumTrie
221Map Sum PairsMediumTrie
222Longest Word in DictionaryMediumTrie + DFS
223Search Suggestions SystemMediumTrie + Sort
224Max XOR of Two NumbersMediumBitwise Trie
225Word Search IIHardTrie + Backtrack
226Palindrome PairsHardTrie
227Stream of CharactersHardReverse Trie

9. Heap / Priority Queue (22)

#ProblemDifficultyPattern
228Kth Largest in StreamEasyMin Heap
229Last Stone WeightEasyMax Heap
230Kth Largest in ArrayMediumQuickselect / Heap
231K Closest PointsMediumHeap
232Task SchedulerMediumHeap + Queue
233Design TwitterMediumHeap + Design
234Reorganize StringMediumHeap
235K Pairs with Smallest SumsMediumHeap
236Seat Reservation ManagerMediumMin Heap
237Smallest in Infinite SetMediumHeap + Set
238Max Subsequence ScoreMediumSort + Heap
239Total Cost to Hire K WorkersMediumTwo Heaps
240Top K Frequent WordsMediumHeap
241Sort Chars by FrequencyMediumHeap / Bucket
242Ugly Number IIMediumHeap / DP
243IPOHardTwo Heaps
244Find Median from Data StreamHardTwo Heaps
245Sliding Window MedianHardTwo Heaps
246Smallest Range from K ListsHardHeap
247Trapping Rain Water IIHardHeap + BFS
248Process Tasks Using ServersMediumTwo Heaps
249Super Ugly NumberMediumHeap

10. Backtracking (22)

#ProblemDifficultyPattern
250SubsetsMediumBacktracking
251Combination SumMediumBacktracking
252PermutationsMediumBacktracking
253Subsets IIMediumBacktracking + Skip
254Combination Sum IIMediumBacktracking + Skip
255Permutations IIMediumBacktracking + Skip
256Word SearchMediumDFS + Backtrack
257Palindrome PartitioningMediumBacktracking
258Letter Combos of Phone NumberMediumBacktracking
259CombinationsMediumBacktracking
260Generate ParenthesesMediumBacktracking
261Restore IP AddressesMediumBacktracking
262Find Unique Binary StringMediumBacktracking
263Max Concat String Unique CharsMediumBacktracking
264Partition to K Equal SubsetsMediumBacktracking
265Matchsticks to SquareMediumBacktracking
266Split String DescendingMediumBacktracking
267N-QueensHardBacktracking
268N-Queens IIHardBacktracking
269Sudoku SolverHardBacktracking
270Expression Add OperatorsHardBacktracking
271Word Break IIHardBacktracking + Memo

11. Graphs (38)

#ProblemDifficultyPattern
272Number of IslandsMediumDFS / BFS
273Clone GraphMediumDFS + Map
274Max Area of IslandMediumDFS
275Pacific Atlantic Water FlowMediumDFS
276Surrounded RegionsMediumDFS from Border
277Rotting OrangesMediumMulti-source BFS
278Course ScheduleMediumTopological Sort
279Course Schedule IIMediumTopological Sort
280Redundant ConnectionMediumUnion Find
281Accounts MergeMediumUnion Find / DFS
282Is Graph Bipartite?MediumBFS / DFS Coloring
283Shortest Path in Binary MatrixMediumBFS
284Open the LockMediumBFS
285Minimum Height TreesMediumTopological (Leaf Trim)
286Cheapest Flights K StopsMediumBellman-Ford / BFS
287Network Delay TimeMediumDijkstra
288Min Cost Connect PointsMediumPrim / Kruskal
289Snakes and LaddersMediumBFS
290Evaluate DivisionMediumDFS / Union Find
291Reorder Routes to City ZeroMediumDFS
292Find Eventual Safe StatesMediumDFS Cycle Detection
293Shortest BridgeMediumDFS + BFS
294Detonate Max BombsMediumDFS / BFS
295Keys and RoomsMediumDFS
296Number of ProvincesMediumDFS / Union Find
297Find the Town JudgeEasyDegree Count
298All Paths Source to TargetMediumDFS / Backtrack
299Min Vertices to Reach AllMediumIndegree
300Possible BipartitionMediumBFS Coloring
301Word LadderHardBFS
302Swim in Rising WaterHardDijkstra / BS + BFS
303Alien DictionaryHardTopological Sort
304Reconstruct ItineraryHardEuler Path DFS
305Word Ladder IIHardBFS + Backtrack
306Bus RoutesHardBFS
307Critical ConnectionsHardTarjan's Bridge
308Longest Increasing PathHardDFS + Memo
309Making a Large IslandHardDFS + Union

12. 1D Dynamic Programming (38)

#ProblemDifficultyPattern
310Climbing StairsEasyFibonacci-style
311Min Cost Climbing StairsEasyDP
312Fibonacci NumberEasyDP / Math
313N-th Tribonacci NumberEasyDP
314House RobberMediumDP
315House Robber IIMediumCircular DP
316Longest Palindromic SubstringMediumExpand Center / DP
317Palindromic SubstringsMediumExpand Center
318Decode WaysMediumDP
319Coin ChangeMediumDP (Unbounded)
320Max Product SubarrayMediumDP (min/max)
321Word BreakMediumDP + Set
322Longest Increasing SubsequenceMediumDP / Binary Search
323Partition Equal Subset SumMedium0/1 Knapsack
324Maximum SubarrayMediumKadane's
325Jump GameMediumGreedy / DP
326Jump Game IIMediumGreedy / DP
327Perfect SquaresMediumDP
328Integer BreakMediumDP / Math
329Combination Sum IVMediumDP
330Delete and EarnMediumDP (House Robber)
331Buy Stock with CooldownMediumState Machine DP
332Minimum Cost for TicketsMediumDP
333Longest Arithmetic SubsequenceMediumDP + Map
334Count Ways Good StringsMediumDP
335Domino and Tromino TilingMediumDP
336Solving Questions BrainpowerMediumDP
337Arithmetic SlicesMediumDP
338Longest Turbulent SubarrayMediumDP
339Target SumMediumDP (Subset Sum)
340Extra Characters in StringMediumDP + Set
341Longest Palindromic SubsequenceMediumDP
342Max Length Pair ChainMediumDP / Greedy
343Number of LISMediumDP
344Wiggle SubsequenceMediumDP / Greedy
345Longest Ideal SubsequenceMediumDP
346Ones and ZeroesMediumKnapsack DP
347Max Points with CostMediumDP

13. 2D Dynamic Programming (22)

#ProblemDifficultyPattern
348Unique PathsMediumGrid DP
349Unique Paths IIMediumGrid DP
350Longest Common SubsequenceMedium2D DP
351Buy Stock with FeeMediumState Machine DP
352Minimum Path SumMediumGrid DP
353TriangleMediumGrid DP
354Maximal SquareMedium2D DP
355Coin Change IIMediumUnbounded Knapsack
356Interleaving StringMedium2D DP
357Stone GameMediumInterval DP
358Stone Game IIMediumGame DP
359Last Stone Weight IIMediumKnapsack
360Edit DistanceMedium2D DP
361Regular Expression MatchingHard2D DP
362Wildcard MatchingHard2D DP
363Burst BalloonsHardInterval DP
364Distinct SubsequencesHard2D DP
365Stone Game IIIHardGame DP
366Profitable SchemesHard3D Knapsack
367Dungeon GameHardReverse Grid DP
368Cherry PickupHard3D DP
369Cherry Pickup IIHard3D DP

14. Greedy (28)

#ProblemDifficultyPattern
370Lemonade ChangeEasyGreedy
371Max Units on a TruckEasySort + Greedy
372Array PartitionEasySort + Greedy
373Gas StationMediumGreedy
374Non-overlapping IntervalsMediumSort + Greedy
375Min Arrows to Burst BalloonsMediumSort + Greedy
376Queue Reconstruction by HeightMediumSort + Greedy
377Min Deletions Unique FrequenciesMediumGreedy
378Reduce Array Size to HalfMediumGreedy
379Longest Happy StringMediumGreedy + Heap
380Advantage ShuffleMediumSort + Greedy
381Min Rounds All TasksMediumGreedy + Math
382Max Ice Cream BarsMediumSort + Greedy
383Dota2 SenateMediumGreedy + Queue
384Two City SchedulingMediumSort + Greedy
385Video StitchingMediumGreedy
386Largest NumberMediumCustom Sort
387Broken CalculatorMediumReverse Greedy
388Minimize Maximum of ArrayMediumGreedy / BS
389Max Length Positive ProductMediumGreedy / DP
390Flower PlantingMediumGreedy + Graph
391CandyHardTwo-Pass Greedy
392Min Refueling StopsHardGreedy + Heap
393Earliest Day Full BloomHardSort + Greedy
394Min Cost Equal ArrayHardWeighted Median
395Max Events AttendedMediumGreedy + Heap
396Min Ops Array ContinuousHardSort + Sliding Window
397Max Points ArcheryMediumBitmask / Greedy

15. Intervals (14)

#ProblemDifficultyPattern
398Summary RangesEasyIntervals
399Merge IntervalsMediumSort + Merge
400Insert IntervalMediumIntervals
401Interval List IntersectionsMediumTwo Pointers
402Remove Covered IntervalsMediumSort + Greedy
403My Calendar IMediumBinary Search / Sort
404My Calendar IIMediumSweep Line
405Car PoolingMediumSweep Line
406Meeting RoomsEasySort + Check
407Meeting Rooms IIMediumSweep Line / Heap
408Min Interval for QueriesHardSort + Heap
409Data Stream Disjoint IntervalsHardTreeMap / Sort
410Employee Free TimeHardMerge + Sort
411Range ModuleHardSegment Tree / Sort

16. Math & Geometry (28)

#ProblemDifficultyPattern
412Plus OneEasyMath
413Happy NumberEasyFast/Slow Pointers
414Palindrome NumberEasyMath
415Fizz BuzzEasyModulo
416Power of TwoEasyBit / Math
417Power of ThreeEasyMath
418Add BinaryEasyMath
419Ugly NumberEasyMath
420Excel Sheet Column NumberEasyBase Conversion
421Excel Sheet Column TitleEasyBase Conversion
422Set MismatchEasyMath / Hash
423GCD of StringsEasyGCD / Math
424Rotate ImageMediumMatrix Rotation
425Count PrimesMediumSieve
426Factorial Trailing ZeroesMediumMath
427Multiply StringsMediumMath
428Detect SquaresMediumHash Map + Geometry
429Pow(x, n)MediumFast Exponentiation
430Reverse IntegerMediumMath
431Robot Bounded in CircleMediumSimulation
432Random Pick with WeightMediumPrefix Sum + BS
433Min Moves Equal ElementsMediumMath
434Min Moves Equal Elements IIMediumMedian
435Angle Between Clock HandsMediumMath
436Water and Jug ProblemMediumGCD / BFS
437Max Points on a LineHardHash Map + Math
438Permutation SequenceHardMath (Factorial)
439Integer to English WordsHardRecursion

17. Bit Manipulation (18)

#ProblemDifficultyPattern
440Single NumberEasyXOR
441Number of 1 BitsEasyBit Count
442Counting BitsEasyDP + Bits
443Reverse BitsEasyBit Manipulation
444Hamming DistanceEasyXOR + Count
445Complement of Base 10EasyBit Flip
446Sum of Two IntegersMediumBit Manipulation
447Single Number IIMediumBit Counting
448Single Number IIIMediumXOR + Partition
449Bitwise AND of RangeMediumBit Shift
450Find the Duplicate NumberMediumFast/Slow / Bits
451UTF-8 ValidationMediumBit Masking
452Min Flips a OR b = cMediumBit Manipulation
453XOR Queries of SubarrayMediumPrefix XOR
454Total Hamming DistanceMediumBit Count
455Gray CodeMediumBit Manipulation
456Divide Two IntegersMediumBit Shift
457Decode XORed PermutationMediumXOR

18. Union Find (12)

#ProblemDifficultyPattern
458Longest Consecutive SequenceMediumUnion Find / Set
459Connected ComponentsMediumUnion Find
460Graph Valid TreeMediumUnion Find
461Most Stones RemovedMediumUnion Find
462Satisfiability of EqualityMediumUnion Find
463Network ConnectedMediumUnion Find
464Smallest String with SwapsMediumUnion Find + Sort
465Similar String GroupsHardUnion Find
466Number of Islands IIHardUnion Find
467Couples Holding HandsHardUnion Find / Greedy
468Minimize Malware SpreadHardUnion Find
469Regions Cut By SlashesMediumUnion Find

19. Design (14)

#ProblemDifficultyPattern
470Design HashMapEasyHash Map
471Design HashSetEasyHash Set
472Min StackMediumStack Design
473LRU CacheMediumDLL + Map
474Design Browser HistoryMediumStack / DLL
475Implement TrieMediumTrie
476Design Circular QueueMediumArray / LL
477Design Underground SystemMediumHash Map
478Snapshot ArrayMediumBinary Search
479Online Stock SpanMediumMonotonic Stack
480LFU CacheHardDLL + Map
481Find Median from StreamHardTwo Heaps
482Autocomplete SystemHardTrie + Sort
483All O(1) Data StructureHardDLL + Map

20. String (30)

#ProblemDifficultyPattern
484Valid Palindrome IIEasyTwo Pointers
485First Unique CharacterEasyHash Map
486Reverse Words in StringMediumString
487Zigzag ConversionMediumSimulation
488String to Integer (atoi)MediumParsing
489Count and SayMediumSimulation
490Compare Version NumbersMediumString Split
491Longest PalindromeEasyFrequency Count
492Repeated Substring PatternEasyString
493Isomorphic StringsEasyHash Map
494Word PatternEasyHash Map
495Ransom NoteEasyFrequency Count
496Implement strStr()EasyString Match
497Min Remove Valid ParensMediumStack / Two Pass
498Longest Substr K RepeatingMediumDivide & Conquer
499Optimal Partition of StringMediumGreedy + Set
500Group AnagramsMediumHash Map
501String CompressionMediumTwo Pointers
502Basic Calculator IIMediumStack + Parse
503Remove Adjacent DuplicatesEasyStack
504Min Penalty for a ShopMediumPrefix Sum
505Bulls and CowsMediumHash Map
506Number of AtomsHardStack + Parse
507Shortest PalindromeHardKMP / Rolling Hash
508Minimum Window SubstringHardSliding Window
509Distinct SubsequencesHardDP
510Count Unique Chars SubstringsHardMath
511Palindrome Partitioning IIHardDP
512Minimum Window SubstringHardSliding Window
513Reorganize StringMediumHeap / Greedy

21. Sorting (15)

#ProblemDifficultyPattern
514Merge Sorted ArrayEasyTwo Pointers
515Valid AnagramEasySort / Hash
516Sort an ArrayMediumMerge Sort
517Sort ListMediumMerge Sort
518Insertion Sort ListMediumInsertion Sort
519Kth Largest ElementMediumQuickselect
520Wiggle Sort IIMediumSort + Place
521Largest NumberMediumCustom Comparator
522Top K FrequentMediumBucket Sort
523Sort Chars by FrequencyMediumBucket Sort
524Relative Sort ArrayEasyCounting Sort
525Maximum GapMediumRadix / Bucket Sort
526Sort ColorsMediumDutch Flag
527Pancake SortingMediumSimulation
528Count Smaller After SelfHardMerge Sort

22. Prefix Sum (14)

#ProblemDifficultyPattern
529Running Sum of 1D ArrayEasyPrefix Sum
530Find Pivot IndexEasyPrefix Sum
531Range Sum Query ImmutableEasyPrefix Sum
532Subarray Sum Equals KMediumPrefix Sum + Map
533Contiguous ArrayMediumPrefix Sum + Map
534Product Except SelfMediumPrefix / Suffix
535Random Pick with WeightMediumPrefix Sum + BS
536Range Sum Query 2DMedium2D Prefix Sum
537Min Penalty for ShopMediumPrefix Sum
538Path Sum IIIMediumPrefix Sum + DFS
539XOR QueriesMediumPrefix XOR
540Ways to Split ArrayMediumPrefix Sum
541Max Sum Almost Unique SubarrayMediumWindow + Prefix
542Count Subarrays Fixed BoundsHardSliding Window

23. Matrix (15)

#ProblemDifficultyPattern
543Reshape the MatrixEasyMatrix
544Transpose MatrixEasyMatrix
545Matrix Diagonal SumEasyMatrix
546Rotate ImageMediumMatrix Rotation
547Spiral MatrixMediumSimulation
548Set Matrix ZeroesMediumIn-Place
549Where Will Ball FallMediumSimulation
55001 MatrixMediumBFS
551Diagonal TraverseMediumSimulation
552Toeplitz MatrixEasyMatrix
553Number of IslandsMediumDFS / BFS
554Surrounded RegionsMediumDFS from Border
555Word SearchMediumDFS + Backtrack
556Maximal SquareMediumDP
557Shortest Path Binary MatrixMediumBFS

24. Recursion (12)

#ProblemDifficultyPattern
558Power of TwoEasyRecursion
559Power of FourEasyRecursion / Math
560Reverse Linked ListEasyRecursion
561Swap Nodes in PairsMediumRecursion
562Merge Two Sorted ListsEasyRecursion
563Pow(x, n)MediumRecursion (D&C)
564Generate ParenthesesMediumRecursion
565Different Ways to Add ParensMediumDivide & Conquer
566Kth Symbol in GrammarMediumRecursion
567Predict the WinnerMediumGame Recursion
568Sort ListMediumMerge Sort Recursion
569Strobogrammatic Number IIMediumRecursion

25. Mixed Hard Problems (41)

These are the problems that test everything you've learned. Complete these and you're elite.

#ProblemDifficultyPattern
570LRU CacheMediumDesign
571Design Circular DequeMediumDesign
572Design Linked ListMediumLinked List
573Implement Stack using QueuesEasyDesign
574Maximal Network RankMediumGraph
575Minimum Genetic MutationMediumBFS
576Jump Game IIIMediumBFS / DFS
577Jump Game IVHardBFS
578Max Profit Job SchedulingHardDP + BS
579Largest Color ValueHardTopo Sort + DP
580Min Cost K WorkersHardSort + Heap
581Count Vowels PermutationHardDP
582Frog JumpHardDP + Set
583Strange PrinterHardInterval DP
584Min Window SubsequenceHardTwo Pointers / DP
585Concatenated WordsHardDP + Trie
586Count Pickup DeliveryHardMath / DP
587Design Graph Shortest PathHardDijkstra
588Ways to Arrive at DestinationMediumDijkstra + DP
589Longest String ChainMediumDP + Map
590Min Ops Reduce X to ZeroMediumSliding Window / Prefix
591Where Will Ball FallMediumSimulation
592Number of EnclavesMediumDFS / BFS
593Count Good MealsMediumHash Map
594Find All FarmlandMediumDFS / BFS
595Stamping the SequenceHardGreedy (Reverse)
596Count of Range SumHardMerge Sort
597Increasing Paths in GridHardDFS + Memo
598Min Obstacle RemovalHard0-1 BFS
599Maximize Score N OpsHardBitmask DP
600Min Days Disconnect IslandHardArticulation Points
601Count Subarrays Median KHardHash Map
602Amount Painted Each DayHardSweep Line
603Min Cost Connect SticksMediumHeap
604Next PermutationMediumMath
605Can Place FlowersEasyGreedy
606Kids With Greatest CandiesEasyArray
607Number of Recent CallsEasyQueue
608Asteroid CollisionMediumStack
609Find Highest AltitudeEasyPrefix Sum
610Equal Row & Column PairsMediumHash Map
611Find K Closest ElementsMediumBinary Search
612Last Day Still CrossHardBS + BFS / UF
613Number of Good PathsHardUnion Find + Sort
614Shortest Path All NodesHardBFS + Bitmask
615Smallest Sufficient TeamHardBitmask DP
616Number of Music PlaylistsHardDP
617Tallest BillboardHardDP
618Count Palindromic SubseqsHardDP
619Min Cost Cut StickHardInterval DP
620Max Running Time N ComputersHardBS + Greedy
621Min Taps Water GardenHardGreedy
622Parallel Courses IIIHardTopo Sort + DP
623Min Time Collect ApplesMediumDFS
624Online ElectionMediumBS + Precompute
625My Calendar IIIHardSweep Line
626Flowers in Full BloomHardSort + BS
627Path with Min EffortMediumDijkstra / BS+BFS
628Critical MST EdgesHardKruskal + UF
629Dice Rolls Target SumMediumDP
630Min Falling Path SumMediumDP
631Number of Closed IslandsMediumDFS / BFS
632Min Score PathMediumBFS / UF
633Constrained Subsequence SumHardDP + Deque
634Restore the ArrayHardDP
635Sum of Distances in TreeHardRerooting DP
636Max Profit Job SchedulingHardDP + BS
637Largest Color ValueHardTopo Sort + DP
638Count Vowels PermutationHardDP
639Frog JumpHardDP + Set
640Strange PrinterHardInterval DP
641Concatenated WordsHardDP + Trie
642Min Cost K WorkersHardSort + Heap
643Design Graph Shortest PathHardDijkstra
644Ways to Arrive at DestMediumDijkstra + DP
645Longest String ChainMediumDP + Map
646Min Ops Reduce X to ZeroMediumSliding Window
647Number of EnclavesMediumDFS / BFS
648Find All FarmlandMediumDFS / BFS
649Next PermutationMediumMath
650Stamping the SequenceHardGreedy (Reverse)
You've Got This

650 problems is a lot. But if you do 3 problems a day, you'll finish in about 7 months. That's 7 months to be better than 99% of developers at problem-solving. Start today. One problem at a time.

Need the foundations first? Start with the DSA Foundations page.