Skip to content

πŸ’» Detailed Explanations for LeetCode Solutions in Java. Updated Daily.

License

NotificationsYou must be signed in to change notification settings

cheehwatang/leetcode-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeetCode Java Solutions


     

Hi πŸ‘‹, I'm Chee Hwa and welcome to LeetCode Solutions in Java.


As I'm new to LeetCode and programming in general, I'm practicing everyday and hope to share my solutions and learnings with you.

  • Exclusively on Java
  • Beginner problems
  • Daily Challenge if within my ability


Latest Solutions


DateProblemDifficultySolutionTopics
September 14th1775. Equal Sum Arrays With Minimum Number of Operations$\text{\color{Dandelion}Medium}$CountingArray, Counting, Greedy
September 13th1814. Count Nice Pairs in an Array$\text{\color{Dandelion}Medium}$Counting & Hash TableArray, Counting, Hash Table, Math
September 12th2006. Count Number of Pairs With Absolute Difference K$\text{\color{TealBlue}Easy}$Hash TableArray, Hash Table
September 11th2006. Count Number of Pairs With Absolute Difference K$\text{\color{TealBlue}Easy}$CountingArray, Counting
September 10th2006. Count Number of Pairs With Absolute Difference K$\text{\color{TealBlue}Easy}$Brute ForceArray


Topics

The problem sets and solutions are grouped into Topics as stated in LeetCode.


Array

#ProblemSolutionDifficultyTopicsNote
1Two SumJava$\text{\color{TealBlue}Easy}$Array, Hash Table
153SumJava$\text{\color{Dandelion}Medium}$Array, Sorting, Two Pointers
163Sum ClosestJava$\text{\color{Dandelion}Medium}$Array, Sorting, Two Pointers
26Remove Duplicates from Sorted ArrayJava$\text{\color{TealBlue}Easy}$Array, Two Pointers
27Remove ElementJava$\text{\color{TealBlue}Easy}$Array, Two Pointers
36Valid SudokuJava without or with Hash Table$\text{\color{Dandelion}Medium}$Array, Hash Table, Matrix
37Sudoku SolverJava$\text{\color{Red}Hard}$Array, Backtracking, Matrix
45Jump Game IIDynamic Programming (Memoization), Dynamic Programming (Tabulation) or Greedy$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, Greedy
46PermutationsJava with Backtracking, Iteration or Recursion$\text{\color{Dandelion}Medium}$Array, Backtracking
49Group AnagramsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Sorting, String
55Jump GameJava with Dynamic Programming or Greedy$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, Greedy
57Insert IntervalJava$\text{\color{Dandelion}Medium}$Array
73Set Matrix ZeroesJava with Array, Hash Table or In-Place$\text{\color{Dandelion}Medium}$Array, Hash Table, Matrix
79Word SearchJava$\text{\color{Dandelion}Medium}$Array, Backtracking, Matrix
80Remove Duplicates from Sorted Array IIJava$\text{\color{Dandelion}Medium}$Array, Two Pointers
88Merge Sorted ArrayJava with Sorting or Two Pointers$\text{\color{TealBlue}Easy}$Array, Sorting, Two Pointers
121Best Time to Buy and Sell StockJava with or without Dynamic Programming$\text{\color{TealBlue}Easy}$Array, Dynamic Programming
130Surrounded RegionsJava with Breadth-First Search, Depth-First Search or Union Find$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Depth-First Search, Matrix, Union Find
134Gas StationJava$\text{\color{Dandelion}Medium}$Array, Greedy
136Single NumberJava$\text{\color{TealBlue}Easy}$Array, Bit ManipulationStream Reduce
152Maximum Product SubarrayJava with Array or Dynamic Programming$\text{\color{Dandelion}Medium}$Array, Dynamic Programming
167Two Sum II - Input Array is SortedJava with Binary Search or Two Pointers$\text{\color{Dandelion}Medium}$Array, Binary Search, Two Pointers
169Majority ElementJava with Boyer-Moore Majority Voting Algorithm, Counting & Divide and Conquer, Counting & Hash Table or Sorting$\text{\color{TealBlue}Easy}$Array, Counting, Divide and Conquer, Hash Table, Sorting
200Number of IslandsJava with Breadth-First Search, Depth-First Search or Union Find$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Depth-First Search, Matrix, Union Find
217Contains DuplicateJava with Hash Map, Hash Set or Sorting$\text{\color{TealBlue}Easy}$Array, Hash Table, Sorting
219Contains Duplicate IIJava with Hash Map or Sliding Window$\text{\color{TealBlue}Easy}$Array, Hash Table, Sliding Window
220Contains Duplicate IIIJava with Sliding Window & Bucket Sort, Sliding Window & Ordered Set or Sorting$\text{\color{Red}Hard}$Array, Bucket Sort, Ordered Set, Sliding Window, Sorting
228Summary RangesJava$\text{\color{TealBlue}Easy}$Array
229Majority Element IIJava with Boyer-Moore Majority Voting Algorithm, Counting & Hash Table or Sorting$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, Sorting
238Product of Array Except SelfJava$\text{\color{Dandelion}Medium}$Array, Prefix Sum
274H-IndexJava with Counting Sort and Sorting$\text{\color{TealBlue}Easy}$Array, Counting Sort, Sorting
275H-Index IIJava$\text{\color{Dandelion}Medium}$Array, Binary Search
283Move ZeroesJava$\text{\color{TealBlue}Easy}$Array, Two Pointers
334Increasing Triplet SubsequenceJava$\text{\color{Dandelion}Medium}$Array, Greedy
368Largest Divisible SubsetJava$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, Math, Sorting
393UTF-8 ValidationJava without or with Bit Manipulation$\text{\color{Dandelion}Medium}$Array, Bit Manipulation
414Third Maximum NumberJava with Sorting, without Sorting or with Hash Table & Priority Queue$\text{\color{TealBlue}Easy}$Array, Sorting
448Find All Numbers Disappeared in an ArrayJava with or without Hash Table$\text{\color{TealBlue}Easy}$Array, Hash Table
485Maximum Consecutive OnesJava$\text{\color{TealBlue}Easy}$Array
496Next Greater Element IJava$\text{\color{TealBlue}Easy}$Array, Hash Table, Monotonic Stack, Stack
503Next Greater Element IIJava$\text{\color{Dandelion}Medium}$Array, Monotonic Stack, Stack
523Continuous Subarray SumJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Math, Prefix Sum
560Subarray Sum Equals KJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Prefix Sum
561Array PartitionJava with Greedy & Counting Sort or Greedy & Sorting$\text{\color{TealBlue}Easy}$Array, Counting Sort, Greedy, Sorting
609Find Duplicate File in SystemJava$\text{\color{Dandelion}Medium}$Array, Hash Table, String
645Set MismatchJava with Bit Manipulation, Hash Table or Sorting$\text{\color{TealBlue}Easy}$Array, Bit Manipulation, Hash Table, Sorting
713Subarray Product Less Than KJava$\text{\color{Dandelion}Medium}$Array, Sliding Window
744Find Smallest Letter Greater Than TargetJava with Linear Search or Binary Search$\text{\color{TealBlue}Easy}$Array, Binary Search
746Min Cost Climbing StairsJava with Dynamic Programming - Tabulation or Memoization$\text{\color{TealBlue}Easy}$Array, Dynamic Programming
766Toeplitz MatrixJava$\text{\color{TealBlue}Easy}$Array, MatrixFollow up: One Row at a Time and One Column at a Time
812Largest Triangle AreaJava$\text{\color{TealBlue}Easy}$Array, Geometry, Math
835Image OverlapJava with Bit Manipulation or Hash Table$\text{\color{Dandelion}Medium}$Array, Matrix
904Fruit Into BasketsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Sliding Window
905Sort Array By ParityJava$\text{\color{TealBlue}Easy}$Array, Sorting, Two Pointers
922Sort Array By Parity IIJava$\text{\color{TealBlue}Easy}$Array, Sorting, Two Pointers
9233Sum With MultiplicityJava with Counting Hash Table or Sorting & Two Pointers$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, Sorting, Two Pointers
929Unique Email AddressesJava$\text{\color{TealBlue}Easy}$Array, Hash Table, String
941Valid Mountain ArrayJava$\text{\color{TealBlue}Easy}$Array
944Delete Columns to Make SortedJava$\text{\color{TealBlue}Easy}$Array, String
948Bag of TokensJava$\text{\color{Dandelion}Medium}$Array, Greedy, Sorting, Two Pointers
953Verifying an Alien DictionaryJava$\text{\color{TealBlue}Easy}$Array, Hash Table, String
974Subarray Sums Divisible by KJava with Counting or Hash Table$\text{\color{Dandelion}Medium}$Array, Hash Table, Prefix Sum
976Largest Perimeter TriangleJava$\text{\color{TealBlue}Easy}$Array, Greedy, Math, Sorting
977Squares of a Sorted ArrayJava with Sorting or Two Pointers$\text{\color{TealBlue}Easy}$Array, Sorting, Two Pointers
985Sum of Even Numbers After QueriesJava$\text{\color{Dandelion}Medium}$Array, Simulation
989Add to Array-Form of IntegerJava$\text{\color{TealBlue}Easy}$Array, Math
1019Next Greater Node In Linked ListJava$\text{\color{Dandelion}Medium}$Array, Linked List, Monotonic Stack, Stack
1037Valid BoomerangJava$\text{\color{TealBlue}Easy}$Array, Geometry, Math
1051Height CheckerJava with Counting Sort or Sorting$\text{\color{TealBlue}Easy}$Array, Counting Sort, Sorting
1089Duplicate ZerosJava without or with Two Pointers$\text{\color{TealBlue}Easy}$Array, Two Pointers
1122Relative Sort ArrayJava with Counting Sort or Hash Table$\text{\color{TealBlue}Easy}$Array, Counting Sort, Hash Table, Sorting
1207Unique Number of OccurrencesJava with Counting & Sorting or Hash Table$\text{\color{TealBlue}Easy}$Array, Hash Table
1232Check If It Is a Straight LineJava$\text{\color{TealBlue}Easy}$Array, Geometry, Math
1239Maximum Length of a Concatenated String with Unique CharactersJava with Backtracking or Bit Manipulation$\text{\color{Dandelion}Medium}$Array, Backtracking, Bit Manipulation, String
1295Find Numbers with Even Number of DigitsJava$\text{\color{TealBlue}Easy}$Array
1299Replace Elements with Greatest Element on Right SideJava$\text{\color{TealBlue}Easy}$Array
1337The K Weakest Rows in a MatrixJava with Linear Search, Binary Search, Heap (Priority Queue) & Binary Search or Sorting & Binary Search$\text{\color{TealBlue}Easy}$Array, Binary Search, Heap (Priority Queue), Matrix, Sorting
1346Check If N and Its Double ExistJava with Binary Search & Sorting, Hash Table or Two Pointers$\text{\color{TealBlue}Easy}$Array, Binary Search, Hash Table, Sorting, Two Pointers
1351Count Negative Numbers in a Sorted MatrixJava with Linear Search or Binary Search$\text{\color{TealBlue}Easy}$Array, Binary Search, Matrix
1470Shuffle the ArrayJava$\text{\color{TealBlue}Easy}$Array
1480Running Sum of 1D ArrayJava$\text{\color{TealBlue}Easy}$Array, Prefix Sum
1497Check If Array Pairs Are Divisible by kJava with Counting or Hash Table$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table
1534Count Good TripletsJava$\text{\color{TealBlue}Easy}$Array, Enumeration
1578Minimum Time to Make Rope ColorfulJava with Dynamic Programming or Greedy$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, Greedy, String
1636Sort Array by Increasing FrequencyJava$\text{\color{TealBlue}Easy}$Array, Hash Table, Sorting
1662Check If Two String Arrays are EquivalentJava with or without Pointers$\text{\color{TealBlue}Easy}$Array, String
1672Richest Customer WealthJava$\text{\color{TealBlue}Easy}$Array, Matrix
1679Max Number of K-Sum PairsJava with Hash Table or Sorting & Two Pointers$\text{\color{Dandelion}Medium}$Array, Hash Table, Sorting, Two Pointers
1711Count Good MealsJava$\text{\color{Dandelion}Medium}$Array, Hash Table
1732Find the Highest AltitudeJava$\text{\color{TealBlue}Easy}$Array, Prefix Sum
1775Equal Sum Arrays With Minimum Number of OperationsJava$\text{\color{Dandelion}Medium}$Array, Counting, Greedy
1814Count Nice Pairs in an ArrayJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, Math
1833Maximum Ice Cream BarsJava$\text{\color{Dandelion}Medium}$Array, Greedy, Sorting
1834Single-Threaded CPUJava$\text{\color{Dandelion}Medium}$Array, Heap (Priority Queue), Sorting
1865Finding Pairs With a Certain SumJava$\text{\color{Dandelion}Medium}$Array, Design, Hash Table
1920Build Array from PermutationJava$\text{\color{TealBlue}Easy}$Array, Simulation
1926Nearest Exit from Entrance in MazeJava$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Matrix
1962Remove Stones to Minimize the TotalJava$\text{\color{Dandelion}Medium}$Array, Heap (Priority Queue)
1979Find Greatest Common Divisor of ArrayJava$\text{\color{TealBlue}Easy}$Array, Math, Number Theory
1995Count Special QuadrupletsJava$\text{\color{TealBlue}Easy}$Array, EnumerationSolution Using Hash Table
2006Count Number of Pairs With Absolute Difference KJava with Brute Force, Counting or Hash Table$\text{\color{TealBlue}Easy}$Array, Counting, Hash Table
2007Find Original Array From Doubled ArrayJava with Hash Table, Queue or Counting Array$\text{\color{Dandelion}Medium}$Array, Greedy, Hash Table, Sorting
2023Number of Pairs of Strings With Concatenation Equal to TargetJava$\text{\color{Dandelion}Medium}$Array, String
2028Find Missing ObservationsJava$\text{\color{Dandelion}Medium}$Array, Math, Simulation
2131Longest Palindrome by Concatenating Two Letter WordsJava with Counting or Hash Table$\text{\color{Dandelion}Medium}$Array, Counting, Greedy, Hash Table, String
2133Check if Every Row and Column Contains All NumbersJava without or with Hash Table$\text{\color{TealBlue}Easy}$Array, Hash Table, Matrix
2136Earliest Possible Day of Full BloomJava$\text{\color{Red}Hard}$Array, Greedy, Sorting
2176Count Equal and Divisible Pairs in an ArrayJava$\text{\color{TealBlue}Easy}$Array
2244Minimum Rounds to Complete All TasksJava$\text{\color{Dandelion}Medium}$Array, Counting, Greedy, Hash Table
2279Maximum Bags With Full Capacity of RocksJava$\text{\color{Dandelion}Medium}$Array, Greedy, Sorting
2352Equal Row and Column PairsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Matrix, Simulation
2389Longest Subsequence With Limited SumJava$\text{\color{TealBlue}Easy}$Array, Binary Search, Greedy, Prefix Sum, Sorting
2395Find Subarrays With Equal SumJava$\text{\color{TealBlue}Easy}$Array, Hash Table
2399Check Distances Between Same LettersJava without or with Hash Table$\text{\color{TealBlue}Easy}$Array, Hash Table, String
2438Range Product Queries of PowersJava$\text{\color{Dandelion}Medium}$Array, Bit Manipulation, Prefix Sum
2452Words Within Two Edits of DictionaryJava$\text{\color{Dandelion}Medium}$Array, String
2453Destroy Sequential TargetsJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table
2454Next Greater Element IVJava$\text{\color{Red}Hard}$Array, Monotonic Stack, Stack

⬆️Back To Top


Backtracking

#ProblemSolutionDifficultyTopicsNote
37Sudoku SolverJava$\text{\color{Red}Hard}$Array, Backtracking, Matrix
46PermutationsJava$\text{\color{Dandelion}Medium}$Array, BacktrackingSolution Using Iteration or Recursion
79Word SearchJava$\text{\color{Dandelion}Medium}$Array, Backtracking, Matrix
113Path Sum IIJava with Backtracking and Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Backtracking, Binary Tree, Depth-First Search, Tree
257Binary Tree PathsJava with Backtracking and Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Backtracking, Binary Tree, Depth-First Search, String, Tree
797All Paths From Source to TargetJava$\text{\color{Dandelion}Medium}$Backtracking, Breadth-First Search, Depth-First Search, GraphSolution Using Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)
967Numbers With Same Consecutive DifferencesJava$\text{\color{Dandelion}Medium}$Backtracking, Breadth-First SearchSolution Using Breadth-First Search
1239Maximum Length of a Concatenated String with Unique CharactersJava$\text{\color{Dandelion}Medium}$Array, Backtracking, Bit Manipulation, StringSolution Using Bit Manipulation

⬆️Back To Top


#ProblemSolutionDifficultyTopicsNote
102Binary Tree Level Order TraversalJava$\text{\color{Dandelion}Medium}$Binary Search, Breadth-First Search, Tree
103Binary Tree Zigzag Level Order TraversalJava$\text{\color{Dandelion}Medium}$Binary Search, Breadth-First Search, Tree
107Binary Tree Level Order Traversal IIJava$\text{\color{Dandelion}Medium}$Binary Search, Breadth-First Search, Tree
144Binary Tree Preorder TraversalJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search, Depth-First Search, Stack, Tree
145Binary Tree Postorder TraversalJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search, Depth-First Search, Stack, Tree
167Two Sum II - Input Array is SortedJava$\text{\color{Dandelion}Medium}$Array, Binary Search, Two PointersSolution Using Two Pointers
222Count Complete Tree NodesJava$\text{\color{Dandelion}Medium}$Binary Search, Binary Tree, Depth-First Search, Tree
275H-Index IIJava$\text{\color{Dandelion}Medium}$Array, Binary Search
374Guess Number Higher or LowerJava$\text{\color{TealBlue}Easy}$Binary Search, Interactive
744Find Smallest Letter Greater Than TargetJava$\text{\color{TealBlue}Easy}$Array, Binary SearchSolution Using Linear Search
1337The K Weakest Rows in a MatrixJava with Binary Search, Heap (Priority Queue) & Binary Search or Sorting & Binary Search$\text{\color{TealBlue}Easy}$Array, Binary Search, Heap (Priority Queue), Matrix, SortingSolution Using Linear Search
1346Check If N and Its Double ExistJava with Binary Search & Sorting$\text{\color{TealBlue}Easy}$Array, Binary Search, Hash Table, Sorting, Two PointersSolution Using Hash Table or Two Pointers
1351Count Negative Numbers in a Sorted MatrixJava$\text{\color{TealBlue}Easy}$Array, Binary Search, MatrixSolution Using Linear Search
2389Longest Subsequence With Limited SumJava$\text{\color{TealBlue}Easy}$Array, Binary Search, Greedy, Prefix Sum, Sorting

⬆️Back To Top


Binary Search Tree

#ProblemSolutionDifficultyTopicsNote
98Validate Binary Search TreeJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Search Tree, Binary Tree, Depth-First Search, Tree
653Two Sum IV - Input is a BSTJava with Breadth-First Search (with Hash Table), Breadth-First Search (without Hash Table), Depth-First Search (Iterative), Depth-First Search (Recursive), Two Pointers (with Iterative Inorder Traversal) or Two Pointers (with Recursive Inorder Traversal)$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, Hash Table, Tree, Two Pointers
783Minimum Distance Between BST NodesJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, Tree

⬆️Back To Top


Binary Tree

#ProblemSolutionDifficultyTopicsNote
94Binary Tree Inorder TraversalJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Depth-First Search, Stack, Tree
98Validate Binary Search TreeJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Search Tree, Binary Tree, Depth-First Search, Tree
100Same TreeJava with Breadth-First Search or Depth-First Search$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
104Maximum Depth of Binary TreeJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
110Balanced Binary TreeJava$\text{\color{TealBlue}Easy}$Binary Tree, Depth-First Search, Tree
111Minimum Depth of Binary TreeJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
112Path SumJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
113Path Sum IIJava with Backtracking and Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Backtracking, Binary Tree, Depth-First Search, Tree
114Flatten Binary Tree to Linked ListJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Linked List, Stack, Tree
129Sum Root to Leaf NumbersJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Tree
222Count Complete Tree NodesJava$\text{\color{Dandelion}Medium}$Binary Search, Binary Tree, Depth-First Search, Tree
226Invert Binary TreeJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
257Binary Tree PathsJava with Backtracking and Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Backtracking, Binary Tree, Depth-First Search, String, Tree
404Sum of Left LeavesJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
437Path Sum IIIJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Tree
653Two Sum IV - Input is a BSTJava with Breadth-First Search (with Hash Table), Breadth-First Search (without Hash Table), Depth-First Search (Iterative), Depth-First Search (Recursive), Two Pointers (with Iterative Inorder Traversal) or Two Pointers (with Recursive Inorder Traversal)$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, Hash Table, Tree, Two Pointers
783Minimum Distance Between BST NodesJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, Tree
988Smallest String Starting From LeafJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, String, Tree
1026Maximum Difference Between Node and AncestorJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Tree
1457Pseudo-Palindromic Paths in a Binary TreeJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Bit Manipulation, Breadth-First Search, Depth-First Search, Tree

⬆️Back To Top


Bit Manipulation

#ProblemSolutionDifficultyTopicsNote
29Divide Two IntegersJava$\text{\color{Dandelion}Medium}$Bit Manipulation, Math
136Single NumberJava$\text{\color{TealBlue}Easy}$Array, Bit ManipulationBonus Solution Using Stream Reduce
371Sum of Two IntegersJava$\text{\color{Dandelion}Medium}$Bit Manipulation, Math
393UTF-8 ValidationJava$\text{\color{Dandelion}Medium}$Array, Bit ManipulationSolution without using Bit Manipulation
645Set MismatchJava$\text{\color{TealBlue}Easy}$Array, Bit Manipulation, Hash Table, SortingSolution Using Hash Table or Sorting
1239Maximum Length of a Concatenated String with Unique CharactersJava$\text{\color{Dandelion}Medium}$Array, Backtracking, Bit Manipulation, StringSolution Using Backtracking
1318Minimum Flips to Make a OR b Equal to cJava$\text{\color{Dandelion}Medium}$Bit Manipulation
1342Number of Steps to Reduce a Number to ZeroJava$\text{\color{TealBlue}Easy}$Bit Manipulation, MathSolution Using Math
1457Pseudo-Palindromic Paths in a Binary TreeJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Bit Manipulation, Breadth-First Search, Depth-First Search, Tree
1486XOR Operation in an ArrayJava$\text{\color{TealBlue}Easy}$Bit Manipulation, Math
1680Concatenation of Consecutive Binary NumbersJava$\text{\color{Dandelion}Medium}$Bit Manipulation, Math, SimulationSolution Using Math
2220Minimum Bit Flips to Convert NumberJava$\text{\color{TealBlue}Easy}$Bit Manipulation
2438Range Product Queries of PowersJava$\text{\color{Dandelion}Medium}$Array, Bit Manipulation, Prefix Sum

⬆️Back To Top


Brainteaser

#ProblemSolutionDifficultyTopicsNote
1033Moving Stones Until ConsecutiveJava$\text{\color{Dandelion}Medium}$Brainteaser, Math

⬆️Back To Top


#ProblemSolutionDifficultyTopicsNote
100Same TreeJava$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Depth-First Search
102Binary Tree Level Order TraversalJava$\text{\color{Dandelion}Medium}$Binary Search, Breadth-First Search, Tree
103Binary Tree Zigzag Level Order TraversalJava$\text{\color{Dandelion}Medium}$Binary Search, Breadth-First Search, Tree
104Maximum Depth of Binary TreeJava$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Depth-First Search (Iterative) or Depth-First Search (Recursive)
107Binary Tree Level Order Traversal IIJava$\text{\color{Dandelion}Medium}$Binary Search, Breadth-First Search, Tree
111Minimum Depth of Binary TreeJava$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Depth-First Search (Iterative) or Depth-First Search (Recursive)
112Path SumJava$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Depth-First Search (Iterative) or Depth-First Search (Recursive)
130Surrounded RegionsJava$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Depth-First Search, Matrix, Union FindSolution Using Depth-First Search or Union Find
200Number of IslandsJava$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Depth-First Search, Matrix, Union FindSolution Using Depth-First Search or Union Find
226Invert Binary TreeJava$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Depth-First Search (Iterative) or Depth-First Search (Recursive)
404Sum of Left LeavesJava$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Depth-First Search (Iterative) or Depth-First Search (Recursive)
429N-ary Tree Level Order TraversalJava$\text{\color{Dandelion}Medium}$Breadth-First Search, Tree
559Maximum Depth of Binary TreeJava$\text{\color{TealBlue}Easy}$Breadth-First Search, Depth-First Search, TreeSolution Using Depth-First Search (Iterative) or Depth-First Search (Recursive)
653Two Sum IV - Input is a BSTJava with or without Hash Table$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, Hash Table, Tree, Two PointersSolution Using Depth-First Search (Iterative), Depth-First Search (Recursive), Two Pointers (with Iterative Inorder Traversal) or Two Pointers (with Recursive Inorder Traversal)
783Minimum Distance Between BST NodesJava$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Depth-First Search (Iterative) or Depth-First Search (Recursive)
797All Paths From Source to TargetJava$\text{\color{Dandelion}Medium}$Backtracking, Breadth-First Search, Depth-First Search, GraphSolution Using Depth-First Search (Backtracking), Depth-First Search (Iterative) or Depth-First Search (Recursive)
967Numbers With Same Consecutive DifferencesJava$\text{\color{Dandelion}Medium}$Backtracking, Breadth-First SearchSolution Using Backtracking
1457Pseudo-Palindromic Paths in a Binary TreeJava$\text{\color{Dandelion}Medium}$Binary Tree, Bit Manipulation, Breadth-First Search, Depth-First Search, TreeSolution Using Depth-First Search (Iterative) or Depth-First Search (Recursive)
1926Nearest Exit from Entrance in MazeJava$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Matrix
1971Find if Path Exists in GraphJava$\text{\color{TealBlue}Easy}$Breadth-First Search, Depth-First Search, Graph, Union FindSolution Using Depth-First Search (Iterative), Depth-First Search (Recursive) or Union Find

⬆️Back To Top


Bucket Sort

#ProblemSolutionDifficultyTopicsNote
220Contains Duplicate IIIJava with Sliding Window & Bucket Sort$\text{\color{Red}Hard}$Array, Bucket Sort, Ordered Set, Sliding Window, SortingSolution Using Sliding Window & Ordered Set or Sorting

⬆️Back To Top


Counting

#ProblemSolutionDifficultyTopicsNote
169Majority ElementJava with Counting & Divide and Conquer or Counting & Hash Table$\text{\color{TealBlue}Easy}$Array, Counting, Divide and Conquer, Hash Table, SortingSolution Using Boyer-Moore Majority Voting Algorithm or Sorting
229Majority Element IIJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, SortingSolution Using Boyer-Moore Majority Voting Algorithm or Sorting
383Ransom NoteJava$\text{\color{TealBlue}Easy}$Counting, Hash Table, StringSolution Using Hash Table
9233Sum With MultiplicityJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, Sorting, Two PointersSolution Using Hash Table or Sorting & Two Pointers
1497Check If Array Pairs Are Divisible by kJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash TableSolution Using Hash Table
1603Design Parking SystemJava$\text{\color{TealBlue}Easy}$Counting, Design, Simulation
1704Determine if String Halves Are AlikeJava$\text{\color{TealBlue}Easy}$Counting, String
1775Equal Sum Arrays With Minimum Number of OperationsJava$\text{\color{Dandelion}Medium}$Array, Counting, Greedy
1814Count Nice Pairs in an ArrayJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, Math
2006Count Number of Pairs With Absolute Difference KJava$\text{\color{TealBlue}Easy}$Array, Counting, Hash TableSolution Using Brute Force Approach or Hash Table
2131Longest Palindrome by Concatenating Two Letter WordsJava$\text{\color{Dandelion}Medium}$Array, Counting, Greedy, Hash Table, StringSolution Using Hash Table
2244Minimum Rounds to Complete All TasksJava$\text{\color{Dandelion}Medium}$Array, Counting, Greedy, Hash Table
2351First Letter to Appear TwiceJava$\text{\color{TealBlue}Easy}$Counting, Hash Table, StringSolution Using Hash Table
2453Destroy Sequential TargetsJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table

⬆️Back To Top


Counting Sort

#ProblemSolutionDifficultyTopicsNote
274H-IndexJava$\text{\color{TealBlue}Easy}$Array, Counting Sort, SortingSolution Using Sorting
561Array PartitionJava$\text{\color{TealBlue}Easy}$Array, Counting Sort, Greedy, SortingSolution Using Greedy & Sorting
1051Height CheckerJava$\text{\color{TealBlue}Easy}$Array, Counting Sort, SortingSolution Using Sorting
1122Relative Sort ArrayJava$\text{\color{TealBlue}Easy}$Array, Counting Sort, Hash Table, SortingSolution Using Hash Table

⬆️Back To Top


Data Stream

#ProblemSolutionDifficultyTopicsNote
295Find Median from Data StreamJava$\text{\color{Red}Hard}$Data Stream, Design, Heap (Priority Queue), Sorting, Two Pointers

⬆️Back To Top


#ProblemSolutionDifficultyTopicsNote
94Binary Tree Inorder TraversalJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Depth-First Search, Stack, Tree
98Validate Binary Search TreeJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Search Tree, Binary Tree, Depth-First Search, Tree
100Same TreeJava$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Breadth-First Search
104Maximum Depth of Binary TreeJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Breadth-First Search
110Balanced Binary TreeJava$\text{\color{TealBlue}Easy}$Binary Tree, Depth-First Search, Tree
111Minimum Depth of Binary TreeJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Breadth-First Search
112Path SumJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Breadth-First Search
113Path Sum IIJava with Backtracking and Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Backtracking, Binary Tree, Depth-First Search, Tree
114Flatten Binary Tree to Linked ListJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Linked List, Stack, Tree
129Sum Root to Leaf NumbersJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Tree
130Surrounded RegionsJava$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Depth-First Search, Matrix, Union FindSolution Using Breadth-First Search or Union Find
144Binary Tree Preorder TraversalJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search, Depth-First Search, Stack, Tree
145Binary Tree Postorder TraversalJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search, Depth-First Search, Stack, Tree
200Number of IslandsJava$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Depth-First Search, Matrix, Union FindSolution Using Breadth-First Search or Union Find
222Count Complete Tree NodesJava$\text{\color{Dandelion}Medium}$Binary Search, Binary Tree, Depth-First Search, Tree
226Invert Binary TreeJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Breadth-First Search
257Binary Tree PathsJava with Backtracking and Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Backtracking, Binary Tree, Depth-First Search, String, Tree
404Sum of Left LeavesJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Breadth-First Search
437Path Sum IIIJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Tree
559Maximum Depth of Binary TreeJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Breadth-First Search, Depth-First Search, TreeSolution Using Breadth-First Search
653Two Sum IV - Input is a BSTJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, Hash Table, Tree, Two PointersSolution Using Breadth-First Search (with Hash Table), Breadth-First Search (without Hash Table), Two Pointers (with Iterative Inorder Traversal) or Two Pointers (with Recursive Inorder Traversal)
783Minimum Distance Between BST NodesJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, TreeSolution Using Breadth-First Search
797All Paths From Source to TargetJava with Depth-First Search (Backtracking), Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Backtracking, Breadth-First Search, Depth-First Search, GraphSolution Using Breadth-First Search
988Smallest String Starting From LeafJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, String, Tree
1026Maximum Difference Between Node and AncestorJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Tree
1457Pseudo-Palindromic Paths in a Binary TreeJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Bit Manipulation, Breadth-First Search, Depth-First Search, TreeSolution Using Breadth-First Search
1971Find if Path Exists in GraphJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Breadth-First Search, Depth-First Search, Graph, Union FindSolution Using Breadth-First Search or Union Find
2359Find Closest Node to Given Two NodesJava$\text{\color{Dandelion}Medium}$Depth-First Search, Graph

⬆️Back To Top


Design

#ProblemSolutionDifficultyTopicsNote
225Implement Stack using QueuesJava$\text{\color{TealBlue}Easy}$Design, Queue, Stack
232Implement Queue using StacksJava$\text{\color{TealBlue}Easy}$Design, Queue, Stack
295Find Median from Data StreamJava$\text{\color{Red}Hard}$Data Stream, Design, Heap (Priority Queue), Sorting, Two Pointers
707Design Linked ListJava with Singly Linked List or Doubly Linked List$\text{\color{Dandelion}Medium}$Design, Linked List
1603Design Parking SystemJava$\text{\color{TealBlue}Easy}$Counting, Design, Simulation
1865Finding Pairs With a Certain SumJava$\text{\color{Dandelion}Medium}$Array, Design, Hash Table

⬆️Back To Top


Divide and Conquer

#ProblemSolutionDifficultyTopicsNote
169Majority ElementJava$\text{\color{TealBlue}Easy}$Array, Counting, Divide and Conquer, Hash Table, SortingSolution Using Boyer-Moore Majority Voting Algorithm, Counting & Hash Table or Sorting

⬆️Back To Top


Dynamic Programming

#ProblemSolutionDifficultyTopicsNote
5Longest Palindromic SubstringJava$\text{\color{Dandelion}Medium}$Dynamic Programming, StringSolution Using Two Pointers with Approach 1 or Approach 2
45Jump Game IIJava with Dynamic Programming - Memoization or Tabulation$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, GreedySolution Using Greedy
55Jump GameJava$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, GreedySolution Using Greedy
70Climbing StairsJava with Dynamic Programming - Tabulation or Memoization$\text{\color{TealBlue}Easy}$Dynamic Programming, Math, Memoization
121Best Time to Buy and Sell StockJava$\text{\color{TealBlue}Easy}$Array, Dynamic ProgrammingSolution without Using Dynamic Programming
152Maximum Product SubarrayJava$\text{\color{Dandelion}Medium}$Array, Dynamic ProgrammingSolution Using Array
264Ugly Number IIJava$\text{\color{Dandelion}Medium}$Dynamic Programming, Hash Table, Heap (Priority Queue), MathSolution Using Heap (Priority Queue)
368Largest Divisible SubsetJava$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, Math, Sorting
509Fibonacci NumberJava with Dynamic Programming - Tabulation or Memoization$\text{\color{TealBlue}Easy}$Dynamic Programming, Math, Memoization, Recursion
746Min Cost Climbing StairsJava with Dynamic Programming - Tabulation or Memoization$\text{\color{TealBlue}Easy}$Array, Dynamic Programming
1137N-th Tribonacci NumberJava with Dynamic Programming Iteratively or Recursively (Memoization)$\text{\color{TealBlue}Easy}$Dynamic Programming, Math, Memoization
1155Number of Dice Rolls With Target SumJava with Dynamic Programming using Memoization or Tabulation$\text{\color{Dandelion}Medium}$Dynamic Programming
1578Minimum Time to Make Rope ColorfulJava$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, Greedy, StringSolution Using Greedy

⬆️Back To Top


Enumeration

#ProblemSolutionDifficultyTopicsNote
1534Count Good TripletsJava$\text{\color{TealBlue}Easy}$Array, Enumeration
1995Count Special QuadrupletsJava$\text{\color{TealBlue}Easy}$Array, EnumerationSolution Using Hash Table
2240Number of Ways to Buy Pens and PencilsJava$\text{\color{Dandelion}Medium}$Enumeration, Math
2437Number of Valid Clock TimesJava$\text{\color{TealBlue}Easy}$Enumeration, String

⬆️Back To Top


Geometry

#ProblemSolutionDifficultyTopicsNote
223Rectangle AreaJava$\text{\color{Dandelion}Medium}$Geometry, Math
593Valid SquareJava$\text{\color{Dandelion}Medium}$Geometry, Math
812Largest Triangle AreaJava$\text{\color{TealBlue}Easy}$Array, Geometry, Math
836Rectangle OverlapJava$\text{\color{TealBlue}Easy}$Geometry, Math
1037Valid BoomerangJava$\text{\color{TealBlue}Easy}$Array, Geometry, Math
1232Check If It Is a Straight LineJava$\text{\color{TealBlue}Easy}$Array, Geometry, Math

⬆️Back To Top


Graph

#ProblemSolutionDifficultyTopicsNote
797All Paths From Source to TargetJava with Breadth-First Search, Depth-First Search (Backtracking), Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Backtracking, Breadth-First Search, Depth-First Search, Graph
1971Find if Path Exists in GraphJava with Breadth-First Search, Depth-First Search (Iterative), Depth-First Search (Recursive) or Union Find$\text{\color{TealBlue}Easy}$Breadth-First Search, Depth-First Search, Graph, Union Find
2359Find Closest Node to Given Two NodesJava$\text{\color{Dandelion}Medium}$Depth-First Search, Graph

⬆️Back To Top


Greedy

#ProblemSolutionDifficultyTopicsNote
45Jump Game IIJava with Greedy$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, GreedySolution Using Dynamic Programming (Memoization) or Dynamic Programming (Tabulation)
55Jump GameJava with Greedy$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, GreedySolution Using Dynamic Programming
134Gas StationJava$\text{\color{Dandelion}Medium}$Array, Greedy
334Increasing Triplet SubsequenceJava$\text{\color{Dandelion}Medium}$Array, Greedy
561Array PartitionJava with Greedy & Counting Sort or Greedy & Sorting$\text{\color{TealBlue}Easy}$Array, Counting Sort, Greedy, Sorting
948Bag of TokensJava$\text{\color{Dandelion}Medium}$Array, Greedy, Sorting, Two Pointers
976Largest Perimeter TriangleJava$\text{\color{TealBlue}Easy}$Array, Greedy, Math, Sorting
1323Maximum 69 NumberJava with Math or String$\text{\color{TealBlue}Easy}$Greedy, Math
1328Break a PalindromeJava$\text{\color{Dandelion}Medium}$Greedy, String
1578Minimum Time to Make Rope ColorfulJava$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, Greedy, StringSolution Using Dynamic Programming
1775Equal Sum Arrays With Minimum Number of OperationsJava$\text{\color{Dandelion}Medium}$Array, Counting, Greedy
1833Maximum Ice Cream BarsJava$\text{\color{Dandelion}Medium}$Array, Greedy, Sorting
2007Find Original Array From Doubled ArrayJava with Hash Table, Queue or Counting Array$\text{\color{Dandelion}Medium}$Array, Greedy, Hash Table, Sorting
2131Longest Palindrome by Concatenating Two Letter WordsJava with Counting or Hash Table$\text{\color{Dandelion}Medium}$Array, Counting, Greedy, Hash Table, String
2136Earliest Possible Day of Full BloomJava$\text{\color{Red}Hard}$Array, Greedy, Sorting
2244Minimum Rounds to Complete All TasksJava$\text{\color{Dandelion}Medium}$Array, Counting, Greedy, Hash Table
2279Maximum Bags With Full Capacity of RocksJava$\text{\color{Dandelion}Medium}$Array, Greedy, Sorting
2389Longest Subsequence With Limited SumJava$\text{\color{TealBlue}Easy}$Array, Binary Search, Greedy, Prefix Sum, Sorting

⬆️Back To Top


Hash Table

#ProblemSolutionDifficultyTopicsNote
1Two SumJava$\text{\color{TealBlue}Easy}$Array, Hash Table
3Longest Substring Without Repeating CharactersJava$\text{\color{Dandelion}Medium}$Hash Table, Sliding Window, StringSolution without Using Hash Table
12Integer to RomanJava$\text{\color{Dandelion}Medium}$Hash Table, Math, StringSolution without Hash Table
13Roman to IntegerJava$\text{\color{TealBlue}Easy}$Hash Table, Math, StringSolution without Hash Table
36Valid SudokuJava$\text{\color{Dandelion}Medium}$Array, Hash Table, MatrixSolution without Hash Table
49Group AnagramsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Sorting, String
73Set Matrix ZeroesJava with Array, Hash Table or In-Place$\text{\color{Dandelion}Medium}$Array, Hash Table, Matrix
169Majority ElementJava$\text{\color{TealBlue}Easy}$Array, Counting, Divide and Conquer, Hash Table, SortingSolution Using Boyer-Moore Majority Voting Algorithm, Counting & Divide and Conquer or Sorting
205Isomorphic StringsJava$\text{\color{TealBlue}Easy}$Hash Table, String
217Contains DuplicateJava with Hash Map or Hash Set$\text{\color{TealBlue}Easy}$Array, Hash Table, SortingSolution Using Sorting
219Contains Duplicate IIJava$\text{\color{TealBlue}Easy}$Array, Hash Table, Sliding WindowSolution Using Sliding Window
229Majority Element IIJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, SortingSolution Using Boyer-Moore Majority Voting Algorithm or Sorting
264Ugly Number IIJava with Dynamic Programming or Heap (Priority Queue)$\text{\color{Dandelion}Medium}$Dynamic Programming, Hash Table, Heap (Priority Queue), Math
290Word PatternJava$\text{\color{TealBlue}Easy}$Hash Table, String
383Ransom NoteJava$\text{\color{TealBlue}Easy}$Counting, Hash Table, StringSolution Using Counting Array
438Find All Anagrams in a StringJava$\text{\color{Dandelion}Medium}$Hash Table, Sliding Window, String
448Find All Numbers Disappeared in an ArrayJava$\text{\color{TealBlue}Easy}$Array, Hash TableSolution without Hash Table
496Next Greater Element IJava$\text{\color{TealBlue}Easy}$Array, Hash Table, Monotonic Stack, Stack
523Continuous Subarray SumJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Math, Prefix Sum
560Subarray Sum Equals KJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Prefix Sum
567Permutation in StringJava$\text{\color{Dandelion}Medium}$Hash Table, Sliding Window, String, Two Pointers
609Find Duplicate File in SystemJava$\text{\color{Dandelion}Medium}$Array, Hash Table, String
645Set MismatchJava$\text{\color{TealBlue}Easy}$Array, Bit Manipulation, Hash Table, SortingSolution Using Bit Manipulation or Sorting
653Two Sum IV - Input is a BSTJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, Hash Table, Tree, Two PointersSolution Using Breadth-First Search (without Hash Table), Two Pointers (with Iterative Inorder Traversal) or Two Pointers (with Recursive Inorder Traversal)
904Fruit Into BasketsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Sliding Window
9233Sum With MultiplicityJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, Sorting, Two PointersSolution Using Counting or Sorting & Two Pointers
929Unique Email AddressesJava$\text{\color{TealBlue}Easy}$Array, Hash Table, String
953Verifying an Alien DictionaryJava$\text{\color{TealBlue}Easy}$Array, Hash Table, String
974Subarray Sums Divisible by KJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Prefix SumSolution Using Counting
1122Relative Sort ArrayJava$\text{\color{TealBlue}Easy}$Array, Counting Sort, Hash Table, SortingSolution Using Counting Sort
1207Unique Number of OccurrencesJava$\text{\color{TealBlue}Easy}$Array, Hash TableSolution Using Counting & Sorting
1346Check If N and Its Double ExistJava with Hash Table$\text{\color{TealBlue}Easy}$Array, Binary Search, Hash Table, Sorting, Two PointersSolution Using Binary Search & Sorting or Two Pointers
1497Check If Array Pairs Are Divisible by kJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash TableSolution Using Counting
1636Sort Array by Increasing FrequencyJava$\text{\color{TealBlue}Easy}$Array, Hash Table, Sorting
1657Determine if Two Strings Are CloseJava with Hash Table & Sorting$\text{\color{Dandelion}Medium}$Array, Hash Table, SortingSolution Using only Sorting
1679Max Number of K-Sum PairsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Sorting, Two PointersSolution Using Sorting & Two Pointers
1711Count Good MealsJava$\text{\color{Dandelion}Medium}$Array, Hash Table
1814Count Nice Pairs in an ArrayJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, Math
1832Check if the Sentence is PangramJava$\text{\color{TealBlue}Easy}$Hash Table, StringSolution Using Bit Manipulation , Counting and Without Hash Table
1865Finding Pairs With a Certain SumJava$\text{\color{Dandelion}Medium}$Array, Design, Hash Table
1935Maximum Number of Words You Can TypeJava$\text{\color{TealBlue}Easy}$Hash Table, String
2006Count Number of Pairs With Absolute Difference KJava$\text{\color{TealBlue}Easy}$Array, Counting, Hash TableSolution Using Brute Force, Counting
2007Find Original Array From Doubled ArrayJava$\text{\color{Dandelion}Medium}$Array, Greedy, Hash Table, SortingSolution Using Queue or Counting Array
2131Longest Palindrome by Concatenating Two Letter WordsJava$\text{\color{Dandelion}Medium}$Array, Counting, Greedy, Hash Table, StringSolution Using Counting
2133Check if Every Row and Column Contains All NumbersJava$\text{\color{TealBlue}Easy}$Array, Hash Table, MatrixSolution Without Hash Table
2244Minimum Rounds to Complete All TasksJava$\text{\color{Dandelion}Medium}$Array, Counting, Greedy, Hash Table
2351First Letter to Appear TwiceJava$\text{\color{TealBlue}Easy}$Counting, Hash Table, StringSolution Using Counting
2352Equal Row and Column PairsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Matrix, Simulation
2395Find Subarrays With Equal SumJava$\text{\color{TealBlue}Easy}$Array, Hash Table
2399Check Distances Between Same LettersJava$\text{\color{TealBlue}Easy}$Array, Hash Table, StringSolution Without Hash Table
2451Odd String DifferenceJava$\text{\color{TealBlue}Easy}$Hash Table, Math, StringSolution Without Hash Table
2453Destroy Sequential TargetsJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table

⬆️Back To Top


Heap (Priority Queue)

#ProblemSolutionDifficultyTopicsNote
264Ugly Number IIJava$\text{\color{Dandelion}Medium}$Dynamic Programming, Hash Table, Heap (Priority Queue), MathSolution Using Dynamic Programming
295Find Median from Data StreamJava$\text{\color{Red}Hard}$Data Stream, Design, Heap (Priority Queue), Sorting, Two Pointers
1337The K Weakest Rows in a MatrixJava with Heap (Priority Queue) & Binary Search$\text{\color{TealBlue}Easy}$Array, Binary Search, Heap (Priority Queue), Matrix, SortingSolution Using Linear Search, Binary Search, Sorting & Binary Search
1834Single-Threaded CPUJava$\text{\color{Dandelion}Medium}$Array, Heap (Priority Queue), Sorting
1962Remove Stones to Minimize the TotalJava$\text{\color{Dandelion}Medium}$Array, Heap (Priority Queue)

⬆️Back To Top


Interactive

#ProblemSolutionDifficultyTopicsNote
374Guess Number Higher or LowerJava$\text{\color{TealBlue}Easy}$Binary Search, Interactive

⬆️Back To Top


Linked List

#ProblemSolutionDifficultyTopicsNote
19Remove Nth Node From End of ListJava with One Pass or Two Passes$\text{\color{Dandelion}Medium}$Linked List, Two Pointers
24Swap Nodes in PairsJava with Iteration or Recursion$\text{\color{Dandelion}Medium}$Linked List, Recursion
92Reverse Linked List IIJava$\text{\color{Dandelion}Medium}$Linked List
114Flatten Binary Tree to Linked ListJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Linked List, Stack, Tree
206Reverse Linked ListJava with Array List, Reverse Nodes Iteratively or Recursively$\text{\color{TealBlue}Easy}$Linked List, Recursion
707Design Linked ListJava with Singly Linked List or Doubly Linked List$\text{\color{Dandelion}Medium}$Design, Linked List
876Middle of the Linked ListJava$\text{\color{TealBlue}Easy}$Linked List, Two Pointers
1019Next Greater Node In Linked ListJava$\text{\color{Dandelion}Medium}$Array, Linked List, Monotonic Stack, Stack
2095Delete the Middle Node of a Linked ListJava$\text{\color{Dandelion}Medium}$Linked List, Two Pointers
2130Maximum Twin Sum of a Linked ListJava with Two Pointers or Two Pointers & Stack$\text{\color{Dandelion}Medium}$Linked List, Stack, Two Pointers

⬆️Back To Top


Math

#ProblemSolutionDifficultyTopicsNote
12Integer to RomanJava with or without Hash Table$\text{\color{Dandelion}Medium}$Hash Table, Math, String
13Roman to IntegerJava with or without Hash Table$\text{\color{TealBlue}Easy}$Hash Table, Math, String
29Divide Two IntegersJava$\text{\color{Dandelion}Medium}$Bit Manipulation, Math
70Climbing StairsJava with Dynamic Programming - Tabulation or Memoization$\text{\color{TealBlue}Easy}$Dynamic Programming, Math, Memoization
223Rectangle AreaJava$\text{\color{Dandelion}Medium}$Geometry, Math
263Ugly NumberJava$\text{\color{TealBlue}Easy}$Math
264Ugly Number IIJava with Dynamic Programming or Heap (Priority Queue)$\text{\color{Dandelion}Medium}$Dynamic Programming, Hash Table, Heap (Priority Queue), Math
368Largest Divisible SubsetJava$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, Math, Sorting
371Sum of Two IntegersJava$\text{\color{Dandelion}Medium}$Bit Manipulation, Math
412Fizz BuzzJava$\text{\color{TealBlue}Easy}$Math, Simulation, String
492Construct the RectangleJava$\text{\color{TealBlue}Easy}$Math
509Fibonacci NumberJava with Dynamic Programming - Tabulation or Memoization$\text{\color{TealBlue}Easy}$Dynamic Programming, Math, Memoization, Recursion
523Continuous Subarray SumJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Math, Prefix Sum
556Next Greater Element IIIJava$\text{\color{Dandelion}Medium}$Math, String, Two Pointers
593Valid SquareJava$\text{\color{Dandelion}Medium}$Geometry, Math
812Largest Triangle AreaJava$\text{\color{TealBlue}Easy}$Array, Geometry, Math
836Rectangle OverlapJava$\text{\color{TealBlue}Easy}$Geometry, Math
976Largest Perimeter TriangleJava$\text{\color{TealBlue}Easy}$Array, Greedy, Math, Sorting
989Add to Array-Form of IntegerJava$\text{\color{TealBlue}Easy}$Array, Math
1033Moving Stones Until ConsecutiveJava$\text{\color{Dandelion}Medium}$Brainteaser, Math
1037Valid BoomerangJava$\text{\color{TealBlue}Easy}$Array, Geometry, Math
1071Greatest Common Divisor of StringsJava$\text{\color{TealBlue}Easy}$Math, String
1103Distribute Candies to PeopleJava$\text{\color{TealBlue}Easy}$Math, Simulation
1137N-th Tribonacci NumberJava with Dynamic Programming Iteratively or Recursively (Memoization)$\text{\color{TealBlue}Easy}$Dynamic Programming, Math, Memoization
1154Day of the YearJava$\text{\color{TealBlue}Easy}$Math, String
1232Check If It Is a Straight LineJava$\text{\color{TealBlue}Easy}$Array, Geometry, Math
1323Maximum 69 NumberJava$\text{\color{TealBlue}Easy}$Greedy, MathSolution Using String
1342Number of Steps to Reduce a Number to ZeroJava$\text{\color{TealBlue}Easy}$Bit Manipulation, MathSolution Using Bit Manipulation
1486XOR Operation in an ArrayJava$\text{\color{TealBlue}Easy}$Bit Manipulation, Math
1523Count Odd Numbers in an Interval RangeJava$\text{\color{TealBlue}Easy}$Math
1680Concatenation of Consecutive Binary NumbersJava$\text{\color{Dandelion}Medium}$Bit Manipulation, Math, SimulationSolution Using Bit Manipulation
1814Count Nice Pairs in an ArrayJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, Math
1979Find Greatest Common Divisor of ArrayJava$\text{\color{TealBlue}Easy}$Array, Math, Number Theory
2028Find Missing ObservationsJava$\text{\color{Dandelion}Medium}$Array, Math, Simulation
2169Count Operations to Obtain ZeroJava$\text{\color{TealBlue}Easy}$Math, Simulation
2240Number of Ways to Buy Pens and PencilsJava$\text{\color{Dandelion}Medium}$Enumeration, Math
2413Smallest Even MultipleJava$\text{\color{TealBlue}Easy}$Math, Number Theory
2451Odd String DifferenceJava without or with Hash Table$\text{\color{TealBlue}Easy}$Hash Table, Math, String

⬆️Back To Top


Matrix

#ProblemSolutionDifficultyTopicsNote
36Valid SudokuJava without or with Hash Table$\text{\color{Dandelion}Medium}$Array, Hash Table, Matrix
37Sudoku SolverJava$\text{\color{Red}Hard}$Array, Backtracking, Matrix
73Set Matrix ZeroesJava with Array, Hash Table or In-Place$\text{\color{Dandelion}Medium}$Array, Hash Table, Matrix
79Word SearchJava$\text{\color{Dandelion}Medium}$Array, Backtracking, Matrix
130Surrounded RegionsJava with Breadth-First Search, Depth-First Search or Union Find$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Depth-First Search, Matrix, Union Find
200Number of IslandsJava with Breadth-First Search, Depth-First Search or Union Find$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Depth-First Search, Matrix, Union Find
766Toeplitz MatrixJava$\text{\color{TealBlue}Easy}$Array, MatrixFollow up: One Row at a Time and One Column at a Time
835Image OverlapJava with Bit Manipulation or Hash Table$\text{\color{Dandelion}Medium}$Array, Matrix
1337The K Weakest Rows in a MatrixJava with Linear Search, Binary Search, Heap (Priority Queue) or Sorting$\text{\color{TealBlue}Easy}$Array, Binary Search, Heap (Priority Queue), Matrix, Sorting
1351Count Negative Numbers in a Sorted MatrixJava with Linear Search or Binary Search$\text{\color{TealBlue}Easy}$Array, Binary Search, Matrix
1672Richest Customer WealthJava$\text{\color{TealBlue}Easy}$Array, Matrix
1926Nearest Exit from Entrance in MazeJava$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Matrix
2133Check if Every Row and Column Contains All NumbersJava without or with Hash Table$\text{\color{TealBlue}Easy}$Array, Hash Table, Matrix
2352Equal Row and Column PairsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Matrix, Simulation

⬆️Back To Top


Memoization

#ProblemSolutionDifficultyTopicsNote
70Climbing StairsJava with Dynamic Programming - Tabulation or Memoization$\text{\color{TealBlue}Easy}$Dynamic Programming, Math, Memoization
509Fibonacci NumberJava with Dynamic Programming - Tabulation or Memoization$\text{\color{TealBlue}Easy}$Dynamic Programming, Math, Memoization, Recursion
1137N-th Tribonacci NumberJava$\text{\color{TealBlue}Easy}$Dynamic Programming, Math, MemoizationSolution Using Dynamic Programming (Iterative)

⬆️Back To Top


Monotonic Stack

#ProblemSolutionDifficultyTopicsNote
496Next Greater Element IJava$\text{\color{TealBlue}Easy}$Array, Hash Table, Monotonic Stack, Stack
503Next Greater Element IIJava$\text{\color{Dandelion}Medium}$Array, Monotonic Stack, Stack
1019Next Greater Node In Linked ListJava$\text{\color{Dandelion}Medium}$Array, Linked List, Monotonic Stack, Stack
2454Next Greater Element IVJava$\text{\color{Red}Hard}$Array, Monotonic Stack, Stack

⬆️Back To Top


Number Theory

#ProblemSolutionDifficultyTopicsNote
1979Find Greatest Common Divisor of ArrayJava$\text{\color{TealBlue}Easy}$Array, Math, Number Theory
2413Smallest Even MultipleJava$\text{\color{TealBlue}Easy}$Math, Number Theory

⬆️Back To Top


Ordered Set

#ProblemSolutionDifficultyTopicsNote
220Contains Duplicate IIIJava with Sliding Window & Ordered Set$\text{\color{Red}Hard}$Array, Bucket Sort, Ordered Set, Sliding Window, SortingSolution Using Sliding Window & Bucket Sort or Sorting

⬆️Back To Top


Prefix Sum

#ProblemSolutionDifficultyTopicsNote
238Product of Array Except SelfJava$\text{\color{Dandelion}Medium}$Array, Prefix Sum
523Continuous Subarray SumJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Math, Prefix Sum
560Subarray Sum Equals KJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Prefix Sum
974Subarray Sums Divisible by KJava with Counting or Hash Table$\text{\color{Dandelion}Medium}$Array, Hash Table, Prefix Sum
1480Running Sum of 1D ArrayJava$\text{\color{TealBlue}Easy}$Array, Prefix Sum
1732Find the Highest AltitudeJava$\text{\color{TealBlue}Easy}$Array, Prefix Sum
2389Longest Subsequence With Limited SumJava$\text{\color{TealBlue}Easy}$Array, Binary Search, Greedy, Prefix Sum, Sorting
2438Range Product Queries of PowersJava$\text{\color{Dandelion}Medium}$Array, Bit Manipulation, Prefix Sum

⬆️Back To Top


Queue

#ProblemSolutionDifficultyTopicsNote
225Implement Stack using QueuesJava$\text{\color{TealBlue}Easy}$Design, Queue, Stack
232Implement Queue using StacksJava$\text{\color{TealBlue}Easy}$Design, Queue, Stack

⬆️Back To Top


Recursion

#ProblemSolutionDifficultyTopicsNote
24Swap Nodes in PairsJava$\text{\color{Dandelion}Medium}$Linked List, RecursionSolution Using Iteration
206Reverse Linked ListJava$\text{\color{TealBlue}Easy}$Linked List, RecursionSolution Using Array List or Reverse Nodes Iteratively
509Fibonacci NumberJava with Dynamic Programming - Tabulation or Memoization$\text{\color{TealBlue}Easy}$Dynamic Programming, Math, Memoization, Recursion

⬆️Back To Top


Simulation

#ProblemSolutionDifficultyTopicsNote
412Fizz BuzzJava$\text{\color{TealBlue}Easy}$Math, Simulation, String
985Sum of Even Numbers After QueriesJava$\text{\color{Dandelion}Medium}$Array, Simulation
1103Distribute Candies to PeopleJava$\text{\color{TealBlue}Easy}$Math, Simulation
1603Design Parking SystemJava$\text{\color{TealBlue}Easy}$Counting, Design, Simulation
1680Concatenation of Consecutive Binary NumbersJava with Bit Manipulation or Math$\text{\color{Dandelion}Medium}$Bit Manipulation, Math, Simulation
1920Build Array from PermutationJava$\text{\color{TealBlue}Easy}$Array, Simulation
2028Find Missing ObservationsJava$\text{\color{Dandelion}Medium}$Array, Math, Simulation
2169Count Operations to Obtain ZeroJava$\text{\color{TealBlue}Easy}$Math, Simulation
2352Equal Row and Column PairsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Matrix, Simulation

⬆️Back To Top


Sliding Window

#ProblemSolutionDifficultyTopicsNote
3Longest Substring Without Repeating CharactersJava with or without Hash Table$\text{\color{Dandelion}Medium}$Hash Table, Sliding Window, String
219Contains Duplicate IIJava$\text{\color{TealBlue}Easy}$Array, Hash Table, Sliding WindowSolution Using Hash Table
220Contains Duplicate IIIJava with Sliding Window & Bucket Sort or Sliding Window & Ordered Set$\text{\color{Red}Hard}$Array, Bucket Sort, Ordered Set, Sliding Window, SortingSolution Using Sorting
438Find All Anagrams in a StringJava$\text{\color{Dandelion}Medium}$Hash Table, Sliding Window, String
567Permutation in StringJava$\text{\color{Dandelion}Medium}$Hash Table, Sliding Window, String, Two Pointers
713Subarray Product Less Than KJava$\text{\color{Dandelion}Medium}$Array, Sliding Window
904Fruit Into BasketsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Sliding Window

⬆️Back To Top


Sorting

#ProblemSolutionDifficultyTopicsNote
153SumJava$\text{\color{Dandelion}Medium}$Array, Sorting, Two Pointers
163Sum ClosestJava$\text{\color{Dandelion}Medium}$Array, Sorting, Two Pointers
49Group AnagramsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Sorting, String
88Merge Sorted ArrayJava$\text{\color{TealBlue}Easy}$Array, Sorting, Two PointersSolution Using Two Pointers
169Majority ElementJava$\text{\color{TealBlue}Easy}$Array, Counting, Divide and Conquer, Hash Table, SortingSolution Using Boyer-Moore Majority Voting Algorithm, Counting & Divide and Conquer or Counting & Hash Table
217Contains DuplicateJava$\text{\color{TealBlue}Easy}$Array, Hash Table, SortingSolution Using Hash Map or Hash Set
220Contains Duplicate IIIJava$\text{\color{Red}Hard}$Array, Bucket Sort, Ordered Set, Sliding Window, SortingSolution Using Sliding Window & Bucket Sort or Sliding Window & Ordered Set
229Majority Element IIJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, SortingSolution Using Boyer-Moore Majority Voting Algorithm or Counting & Hash Table
274H-IndexJava with Counting Sort and Sorting$\text{\color{TealBlue}Easy}$Array, Counting Sort, Sorting
295Find Median from Data StreamJava with Heap (Priority Queue)$\text{\color{Red}Hard}$Data Stream, Design, Heap (Priority Queue), Sorting, Two PointersUse of Sorting & Two Pointers resulted in TLE (Time Limit Exceed) for large datasets.
414Third Maximum NumberJava$\text{\color{TealBlue}Easy}$Array, SortingSolution without Sorting or Using Hash Table & Priority Queue
561Array PartitionJava with Greedy & Counting Sort or Greedy & Sorting$\text{\color{TealBlue}Easy}$Array, Counting Sort, Greedy, Sorting
645Set MismatchJava$\text{\color{TealBlue}Easy}$Array, Bit Manipulation, Hash Table, SortingSolution Using Bit Manipulation or Hash Table
905Sort Array By ParityJava$\text{\color{TealBlue}Easy}$Array, Sorting, Two Pointers
922Sort Array By Parity IIJava$\text{\color{TealBlue}Easy}$Array, Sorting, Two Pointers
9233Sum With MultiplicityJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, Sorting, Two PointersSolution Using Counting Hash Table
948Bag of TokensJava$\text{\color{Dandelion}Medium}$Array, Greedy, Sorting, Two Pointers
976Largest Perimeter TriangleJava$\text{\color{TealBlue}Easy}$Array, Greedy, Math, Sorting
977Squares of a Sorted ArrayJava$\text{\color{TealBlue}Easy}$Array, Sorting, Two PointersSolution Using Two Pointers
1051Height CheckerJava with Counting Sort or Sorting$\text{\color{TealBlue}Easy}$Array, Counting Sort, Sorting
1122Relative Sort ArrayJava$\text{\color{TealBlue}Easy}$Array, Counting Sort, Hash Table, SortingSolution Using Hash Table
1337The K Weakest Rows in a MatrixJava with Sorting & Binary Search$\text{\color{TealBlue}Easy}$Array, Binary Search, Heap (Priority Queue), Matrix, SortingSolution Using Linear Search, Binary Search or Heap (Priority Queue) & Binary Search
1346Check If N and Its Double ExistJava with Binary Search & Sorting$\text{\color{TealBlue}Easy}$Array, Binary Search, Hash Table, Sorting, Two PointersSolution Using Hash Table or Two Pointers
1636Sort Array by Increasing FrequencyJava$\text{\color{TealBlue}Easy}$Array, Hash Table, Sorting
1657Determine if Two Strings Are CloseJava with Sorting or Hash Table & Sorting$\text{\color{Dandelion}Medium}$Array, Hash Table, Sorting
1679Max Number of K-Sum PairsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Sorting, Two PointersSolution Using Hash Table
1833Maximum Ice Cream BarsJava$\text{\color{Dandelion}Medium}$Array, Greedy, Sorting
1834Single-Threaded CPUJava$\text{\color{Dandelion}Medium}$Array, Heap (Priority Queue), Sorting
2007Find Original Array From Doubled ArrayJava with Hash Table or Queue$\text{\color{Dandelion}Medium}$Array, Greedy, Hash Table, SortingSolution Using Counting Array
2136Earliest Possible Day of Full BloomJava$\text{\color{Red}Hard}$Array, Greedy, Sorting
2279Maximum Bags With Full Capacity of RocksJava$\text{\color{Dandelion}Medium}$Array, Greedy, Sorting
2389Longest Subsequence With Limited SumJava$\text{\color{TealBlue}Easy}$Array, Binary Search, Greedy, Prefix Sum, Sorting

⬆️Back To Top


Stack

#ProblemSolutionDifficultyTopicsNote
94Binary Tree Inorder TraversalJava$\text{\color{TealBlue}Easy}$Binary Tree, Depth-First Search, Stack, TreeSolution Using Depth-First Search (Recursive)
114Flatten Binary Tree to Linked ListJava$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Linked List, Stack, TreeSolution Using Depth-First Search (Recursive)
144Binary Tree Preorder TraversalJava$\text{\color{TealBlue}Easy}$Binary Search, Depth-First Search, Stack, TreeSolution Using Depth-First Search (Recursive)
145Binary Tree Postorder TraversalJava$\text{\color{TealBlue}Easy}$Binary Search, Depth-First Search, Stack, TreeSolution Using Depth-First Search (Recursive)
225Implement Stack using QueuesJava$\text{\color{TealBlue}Easy}$Design, Queue, Stack
232Implement Queue using StacksJava$\text{\color{TealBlue}Easy}$Design, Queue, Stack
496Next Greater Element IJava$\text{\color{TealBlue}Easy}$Array, Hash Table, Monotonic Stack, Stack
503Next Greater Element IIJava$\text{\color{Dandelion}Medium}$Array, Monotonic Stack, Stack
1019Next Greater Node In Linked ListJava$\text{\color{Dandelion}Medium}$Array, Linked List, Monotonic Stack, Stack
1047Remove All Adjacent Duplicates In StringJava$\text{\color{TealBlue}Easy}$Stack, StringSolution Using StringBuilder only
1544Make The String GreatJava$\text{\color{TealBlue}Easy}$Stack, String
2130Maximum Twin Sum of a Linked ListJava with Two Pointers & Stack$\text{\color{Dandelion}Medium}$Linked List, Stack, Two PointersSolution Using only Two Pointers
2454Next Greater Element IVJava$\text{\color{Red}Hard}$Array, Monotonic Stack, Stack

⬆️Back To Top


String

#ProblemSolutionDifficultyTopicsNote
3Longest Substring Without Repeating CharactersJava with or without Hash Table$\text{\color{Dandelion}Medium}$Hash Table, Sliding Window, String
5Longest Palindromic SubstringJava with Dynamic Programming, Two Pointers with Approach 1 or Approach 2$\text{\color{Dandelion}Medium}$Dynamic Programming, String
6Zigzag ConversionJava$\text{\color{Dandelion}Medium}$String
12Integer to RomanJava with or without Hash Table$\text{\color{Dandelion}Medium}$Hash Table, Math, String
13Roman to IntegerJava with or without Hash Table$\text{\color{TealBlue}Easy}$Hash Table, Math, String
38Count and SayJava with Iterative or Recursive Algorithms$\text{\color{Dandelion}Medium}$String
49Group AnagramsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Sorting, String
151Reverse Words in a StringJava with StringBuilder or Collections Implementations$\text{\color{Dandelion}Medium}$String, Two PointersSolution Using Two Pointers
205Isomorphic StringsJava$\text{\color{TealBlue}Easy}$Hash Table, String
257Binary Tree PathsJava with Backtracking and Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Backtracking, Binary Tree, Depth-First Search, String, Tree
290Word PatternJava$\text{\color{TealBlue}Easy}$Hash Table, String
344Reverse StringJava$\text{\color{TealBlue}Easy}$String, Two Pointers
345Reverse Vowels of a StringJava$\text{\color{TealBlue}Easy}$String, Two Pointers
368Largest Divisible SubsetJava$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, Math, Sorting
383Ransom NoteJava with Counting Array or Hash Table$\text{\color{TealBlue}Easy}$Counting, Hash Table, String
412Fizz BuzzJava$\text{\color{TealBlue}Easy}$Math, Simulation, String
438Find All Anagrams in a StringJava$\text{\color{Dandelion}Medium}$Hash Table, Sliding Window, String
520Detect CapitalJava$\text{\color{TealBlue}Easy}$String
541Reverse String IIJava with StringBuilder or Two Pointers$\text{\color{TealBlue}Easy}$String, Two Pointers
556Next Greater Element IIIJava$\text{\color{Dandelion}Medium}$Math, String, Two Pointers
557Reverse Words in a String IIIJava with String Builder or Two Pointers$\text{\color{TealBlue}Easy}$String, Two Pointers
567Permutation in StringJava$\text{\color{Dandelion}Medium}$Hash Table, Sliding Window, String, Two Pointers
609Find Duplicate File in SystemJava$\text{\color{Dandelion}Medium}$Array, Hash Table, String
929Unique Email AddressesJava$\text{\color{TealBlue}Easy}$Array, Hash Table, String
944Delete Columns to Make SortedJava$\text{\color{TealBlue}Easy}$Array, String
953Verifying an Alien DictionaryJava$\text{\color{TealBlue}Easy}$Array, Hash Table, String
988Smallest String Starting From LeafJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, String, Tree
1047Remove All Adjacent Duplicates In StringJava$\text{\color{TealBlue}Easy}$Stack, StringSolution Using Stack
1061Lexicographically Smallest Equivalent StringJava$\text{\color{Dandelion}Medium}$String, Union Find
1071Greatest Common Divisor of StringsJava$\text{\color{TealBlue}Easy}$Math, String
1154Day of the YearJava$\text{\color{TealBlue}Easy}$Math, String
1239Maximum Length of a Concatenated String with Unique CharactersJava with Backtracking or Bit Manipulation$\text{\color{Dandelion}Medium}$Array, Backtracking, Bit Manipulation, String
1328Break a PalindromeJava$\text{\color{Dandelion}Medium}$Greedy, String
1446Consecutive CharactersJava$\text{\color{TealBlue}Easy}$String
1544Make The String GreatJava$\text{\color{TealBlue}Easy}$Stack, String
1578Minimum Time to Make Rope ColorfulJava with Dynamic Programming or Greedy$\text{\color{Dandelion}Medium}$Array, Dynamic Programming, Greedy, String
1592Rearrange Spaces Between WordsJava$\text{\color{TealBlue}Easy}$String
1657Determine if Two Strings Are CloseJava with Sorting or Hash Table & Sorting$\text{\color{Dandelion}Medium}$Array, Hash Table, Sorting
1662Check If Two String Arrays are EquivalentJava with or without Pointers$\text{\color{TealBlue}Easy}$Array, String
1704Determine if String Halves Are AlikeJava$\text{\color{TealBlue}Easy}$Counting, String
1832Check if the Sentence is PangramJava$\text{\color{TealBlue}Easy}$Hash Table, StringSolution Using Bit Manipulation , Counting and Hash Table
1869Longer Contiguous Segments of Ones than ZerosJava$\text{\color{TealBlue}Easy}$String
1935Maximum Number of Words You Can TypeJava$\text{\color{TealBlue}Easy}$Hash Table, String
2023Number of Pairs of Strings With Concatenation Equal to TargetJava$\text{\color{Dandelion}Medium}$Array, String
2129Capitalize the TitleJava$\text{\color{TealBlue}Easy}$String
2131Longest Palindrome by Concatenating Two Letter WordsJava with Counting or Hash Table$\text{\color{Dandelion}Medium}$Array, Counting, Greedy, Hash Table, String
2315Count AsterisksJava$\text{\color{TealBlue}Easy}$String
2351First Letter to Appear TwiceJava with Counting or Hash Table$\text{\color{TealBlue}Easy}$Counting, Hash Table, String
2399Check Distances Between Same LettersJava without or with Hash Table$\text{\color{TealBlue}Easy}$Array, Hash Table, String
2437Number of Valid Clock TimesJava$\text{\color{TealBlue}Easy}$Enumeration, String
2451Odd String DifferenceJava without or with Hash Table$\text{\color{TealBlue}Easy}$Hash Table, Math, String
2452Words Within Two Edits of DictionaryJava$\text{\color{Dandelion}Medium}$Array, String

⬆️Back To Top


Tree

#ProblemSolutionDifficultyTopicsNote
94Binary Tree Inorder TraversalJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Depth-First Search, Stack, Tree
98Validate Binary Search TreeJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Search Tree, Binary Tree, Depth-First Search, Tree
100Same TreeJava with Breadth-First Search or Depth-First Search$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
102Binary Tree Level Order TraversalJava$\text{\color{Dandelion}Medium}$Binary Search, Breadth-First Search, Tree
103Binary Tree Zigzag Level Order TraversalJava$\text{\color{Dandelion}Medium}$Binary Search, Breadth-First Search, Tree
104Maximum Depth of Binary TreeJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
107Binary Tree Level Order Traversal IIJava$\text{\color{Dandelion}Medium}$Binary Search, Breadth-First Search, Tree
110Balanced Binary TreeJava$\text{\color{TealBlue}Easy}$Binary Tree, Depth-First Search, Tree
111Minimum Depth of Binary TreeJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
112Path SumJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
113Path Sum IIJava with Backtracking and Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Backtracking, Binary Tree, Depth-First Search, Tree
114Flatten Binary Tree to Linked ListJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Linked List, Stack, Tree
129Sum Root to Leaf NumbersJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Tree
144Binary Tree Preorder TraversalJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search, Depth-First Search, Stack, Tree
145Binary Tree Postorder TraversalJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search, Depth-First Search, Stack, Tree
222Count Complete Tree NodesJava$\text{\color{Dandelion}Medium}$Binary Search, Binary Tree, Depth-First Search, Tree
226Invert Binary TreeJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
257Binary Tree PathsJava with Backtracking and Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Backtracking, Binary Tree, Depth-First Search, String, Tree
404Sum of Left LeavesJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Tree, Breadth-First Search, Depth-First Search, Tree
429N-ary Tree Level Order TraversalJava$\text{\color{Dandelion}Medium}$Breadth-First Search, Tree
437Path Sum IIIJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Tree
559Maximum Depth of Binary TreeJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Breadth-First Search, Depth-First Search, Tree
653Two Sum IV - Input is a BSTJava with Breadth-First Search (with Hash Table), Breadth-First Search (without Hash Table), Depth-First Search (Iterative), Depth-First Search (Recursive), Two Pointers (with Iterative Inorder Traversal) or Two Pointers (with Recursive Inorder Traversal)$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, Hash Table, Tree, Two Pointers
783Minimum Distance Between BST NodesJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, Tree
988Smallest String Starting From LeafJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, String, Tree
1026Maximum Difference Between Node and AncestorJava with Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Depth-First Search, Tree
1457Pseudo-Palindromic Paths in a Binary TreeJava with Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)$\text{\color{Dandelion}Medium}$Binary Tree, Bit Manipulation, Breadth-First Search, Depth-First Search, Tree

⬆️Back To Top


Two Pointers

#ProblemSolutionDifficultyTopicsNote
153SumJava$\text{\color{Dandelion}Medium}$Array, Sorting, Two Pointers
163Sum ClosestJava$\text{\color{Dandelion}Medium}$Array, Sorting, Two Pointers
19Remove Nth Node From End of ListJava with One Pass or Two Passes$\text{\color{Dandelion}Medium}$Linked List, Two Pointers
26Remove Duplicates from Sorted ArrayJava$\text{\color{TealBlue}Easy}$Array, Two Pointers
27Remove ElementJava$\text{\color{TealBlue}Easy}$Array, Two Pointers
80Remove Duplicates from Sorted Array IIJava$\text{\color{Dandelion}Medium}$Array, Two Pointers
88Merge Sorted ArrayJava$\text{\color{TealBlue}Easy}$Array, Sorting, Two PointersSolution Using Sorting
151Reverse Words in a StringJava$\text{\color{Dandelion}Medium}$String, Two PointersSolution Using Collections or StringBuilder
167Two Sum II - Input Array is SortedJava$\text{\color{Dandelion}Medium}$Array, Binary Search, Two PointersSolution Using Binary Search
283Move ZeroesJava$\text{\color{TealBlue}Easy}$Array, Two Pointers
295Find Median from Data StreamJava with Heap (Priority Queue)$\text{\color{Red}Hard}$Data Stream, Design, Heap (Priority Queue), Sorting, Two PointersUse of Sorting & Two Pointers resulted in TLE (Time Limit Exceed) for large datasets.
344Reverse StringJava$\text{\color{TealBlue}Easy}$String, Two Pointers
345Reverse Vowels of a StringJava$\text{\color{TealBlue}Easy}$String, Two Pointers
541Reverse String IIJava$\text{\color{TealBlue}Easy}$String, Two PointersSolution Using StringBuilder
556Next Greater Element IIIJava$\text{\color{Dandelion}Medium}$Math, String, Two Pointers
557Reverse Words in a String IIIJava$\text{\color{TealBlue}Easy}$String, Two PointersSolution Using String Builder
567Permutation in StringJava$\text{\color{Dandelion}Medium}$Hash Table, Sliding Window, String, Two Pointers
653Two Sum IV - Input is a BSTJava with Two Pointers (with Iterative Inorder Traversal) or Two Pointers (with Recursive Inorder Traversal)$\text{\color{TealBlue}Easy}$Binary Search Tree, Binary Tree, Breadth-First Search, Depth-First Search, Hash Table, Tree, Two PointersSolution Using Breadth-First Search (with Hash Table), Breadth-First Search (without Hash Table), Depth-First Search (Iterative) or Depth-First Search (Recursive)
876Middle of the Linked ListJava$\text{\color{TealBlue}Easy}$Linked List, Two Pointers
905Sort Array By ParityJava$\text{\color{TealBlue}Easy}$Array, Sorting, Two Pointers
922Sort Array By Parity IIJava$\text{\color{TealBlue}Easy}$Array, Sorting, Two Pointers
9233Sum With MultiplicityJava$\text{\color{Dandelion}Medium}$Array, Counting, Hash Table, Sorting, Two PointersSolution Using Counting Hash Table
948Bag of TokensJava$\text{\color{Dandelion}Medium}$Array, Greedy, Sorting, Two Pointers
977Squares of a Sorted ArrayJava$\text{\color{TealBlue}Easy}$Array, Sorting, Two PointersSolution Using Sorting
1089Duplicate ZerosJava$\text{\color{TealBlue}Easy}$Array, Two PointersSolution Without Two Pointers
1346Check If N and Its Double ExistJava$\text{\color{TealBlue}Easy}$Array, Binary Search, Hash Table, Sorting, Two PointersSolution Using Binary Search & Sorting or Hash Table
1679Max Number of K-Sum PairsJava$\text{\color{Dandelion}Medium}$Array, Hash Table, Sorting, Two PointersSolution Using Hash Table
2095Delete the Middle Node of a Linked ListJava$\text{\color{Dandelion}Medium}$Linked List, Two Pointers
2130Maximum Twin Sum of a Linked ListJava with Two Pointers or Two Pointers & Stack$\text{\color{Dandelion}Medium}$Linked List, Stack, Two Pointers

⬆️Back To Top


Union Find

#ProblemSolutionDifficultyTopicsNote
130Surrounded RegionsJava$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Depth-First Search, Matrix, Union FindSolution Using Breadth-First Search or Depth-First Search
200Number of IslandsJava$\text{\color{Dandelion}Medium}$Array, Breadth-First Search, Depth-First Search, Matrix, Union FindSolution Using Breadth-First Search or Depth-First Search
1061Lexicographically Smallest Equivalent StringJava$\text{\color{Dandelion}Medium}$String, Union Find
1971Find if Path Exists in GraphJava$\text{\color{TealBlue}Easy}$Breadth-First Search, Depth-First Search, Graph, Union FindSolution Using Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive)

⬆️Back To Top