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
Date | Problem | Difficulty | Solution | Topics |
---|---|---|---|---|
January 9th | 130. Surrounded Regions | Breadth-First Search | Array, Breadth-First Search, Matrix, | |
January 8th | 130. Surrounded Regions | Depth-First Search | Array, Depth-First Search, Matrix, | |
January 7th | 922. Sort Array By Parity II | Sorting & Two Pointers | Array, Sorting, Two Pointers | |
January 6th | 905. Sort Array By Parity | Sorting & Two Pointers | Array, Sorting, Two Pointers | |
January 5th | 200. Number of Islands | Union Find | Array, Matrix, Union Find |
The problem sets and solutions are grouped into Topics as stated in LeetCode.
- Array
- Backtracking
- Binary Search
- Bit Manipulation
- Brainteaser
- Breadth-First Search
- Counting
- Data Stream
- Depth-First Search
- Design
- Dynamic Programming
- Enumeration
- Geometry
- Graph
- Greedy
- Hash Table
- Heap (Priority Queue)
- Interactive
- Linked List
- Math
- Matrix
- Memoization
- Monotonic Stack
- Number Theory
- Prefix Sum
- Recursion
- Simulation
- Sorting
- Stack
- String
- Two Pointers
- Union Find
Array
Backtracking
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
37 | Sudoku Solver | Java | Array, Backtracking, Matrix | ||
79 | Word Search | Java | Array, Backtracking, Matrix | ||
797 | All Paths From Source to Target | Java | Backtracking, Breadth-First Search, Depth-First Search, Graph | Solution Using Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive) | |
967 | Numbers With Same Consecutive Differences | Java | Backtracking, Breadth-First Search | Solution Using Breadth-First Search | |
1239 | Maximum Length of a Concatenated String with Unique Characters | Java | Array, Backtracking, Bit Manipulation, String | Solution Using Bit Manipulation |
Binary Search
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
374 | Guess Number Higher or Lower | Java | Binary Search, Interactive | ||
1337 | The K Weakest Rows in a Matrix | Java with Heap (Priority Queue) or Sorting | Array, Binary Search, Heap (Priority Queue), Matrix, Sorting | Solution Using Linear Search | |
2389 | Longest Subsequence With Limited Sum | Java | Array, Binary Search, Greedy, Prefix Sum, Sorting |
Bit Manipulation
Brainteaser
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
1033 | Moving Stones Until Consecutive | Java | Brainteaser, Math |
Breadth-First Search
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
130 | Surrounded Regions | Java | Array, Breadth-First Search, Depth-First Search, Matrix, | Solution Using Depth-First Search | |
200 | Number of Islands | Java | Array, Breadth-First Search, Depth-First Search, Matrix, Union Find | Solution Using Depth-First Search or Union Find | |
797 | All Paths From Source to Target | Java | Backtracking, Breadth-First Search, Depth-First Search, Graph | Solution Using Depth-First Search (Backtracking), Depth-First Search (Iterative) or Depth-First Search (Recursive) | |
967 | Numbers With Same Consecutive Differences | Java | Backtracking, Breadth-First Search | Solution Using Backtracking | |
1971 | Find if Path Exists in Graph | Java | Breadth-First Search, Depth-First Search, Graph, Union Find | Solution Using Depth-First Search (Iterative), Depth-First Search (Recursive) or Union Find |
Counting
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
383 | Ransom Note | Java | Counting, Hash Table, String | Solution Using Hash Table | |
1497 | Check If Array Pairs Are Divisible by k | Java | Array, Counting, Hash Table | Solution Using Hash Table | |
2131 | Longest Palindrome by Concatenating Two Letter Words | Java | Array, Counting, Greedy, Hash Table, String | Solution Using Hash Table | |
2351 | First Letter to Appear Twice | Java | Counting, Hash Table, String | Solution Using Hash Table | |
2453 | Destroy Sequential Targets | Java | Array, Counting, Hash Table |
Data Stream
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
295 | Find Median from Data Stream | Java | Data Stream, Design, Heap (Priority Queue), Sorting, Two Pointers |
Depth-First Search
or Union Find# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
130 | Surrounded Regions | Java | Array, Breadth-First Search, Depth-First Search, Matrix, | Solution Using Breadth-First Search | |
200 | Number of Islands | Java | Array, Breadth-First Search, Depth-First Search, Matrix, Union Find | Solution Using Breadth-First Search or Union Find | |
797 | All Paths From Source to Target | Java with Depth-First Search (Backtracking), Depth-First Search (Iterative) or Depth-First Search (Recursive) | Backtracking, Breadth-First Search, Depth-First Search, Graph | Solution Using Breadth-First Search | |
1971 | Find if Path Exists in Graph | Java with Depth-First Search (Iterative) or Depth-First Search (Recursive) | Breadth-First Search, Depth-First Search, Graph, Union Find | Solution Using Breadth-First Search |
Design
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
295 | Find Median from Data Stream | Java | Data Stream, Design, Heap (Priority Queue), Sorting, Two Pointers | ||
707 | Design Linked List | Java with Singly Linked List or Doubly Linked List | Design, Linked List | ||
1865 | Finding Pairs With a Certain Sum | Java | Array, Design, Hash Table |
Dynamic Programming
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
70 | Climbing Stairs | Java with Dynamic Programming - Tabulation or Memoization | Dynamic Programming, Math, Memoization | ||
264 | Ugly Number II | Java | Dynamic Programming, Hash Table, Heap (Priority Queue), Math | Solution Using Heap (Priority Queue) | |
368 | Largest Divisible Subset | Java | Array, Dynamic Programming, Math, Sorting | ||
509 | Fibonacci Number | Java with Dynamic Programming - Tabulation or Memoization | Dynamic Programming, Math, Memoization, Recursion | ||
746 | Min Cost Climbing Stairs | Java with Dynamic Programming - Tabulation or Memoization | Array, Dynamic Programming | ||
1578 | Minimum Time to Make Rope Colorful | Java | Array, Dynamic Programming, Greedy, String |
Enumeration
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
1995 | Count Special Quadruplets | Java | Array, Enumeration | Solution Using Hash Table | |
2240 | Number of Ways to Buy Pens and Pencils | Java | Enumeration, Math | ||
2437 | Number of Valid Clock Times | Java | Enumeration, String |
Geometry
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
223 | Rectangle Area | Java | Geometry, Math | ||
593 | Valid Square | Java | Geometry, Math | ||
812 | Largest Triangle Area | Java | Array, Geometry, Math | ||
836 | Rectangle Overlap | Java | Geometry, Math | ||
1037 | Valid Boomerang | Java | Array, Geometry, Math |
Graph
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
797 | All Paths From Source to Target | Java with Breadth-First Search, Depth-First Search (Backtracking), Depth-First Search (Iterative) or Depth-First Search (Recursive) | Backtracking, Breadth-First Search, Depth-First Search, Graph | ||
1971 | Find if Path Exists in Graph | Java with Breadth-First Search, Depth-First Search (Iterative), Depth-First Search (Recursive) or Union Find | Breadth-First Search, Depth-First Search, Graph, Union Find |
Greedy
Hash Table
Heap (Priority Queue)
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
264 | Ugly Number II | Java | Dynamic Programming, Hash Table, Heap (Priority Queue), Math | Solution Using Dynamic Programming | |
295 | Find Median from Data Stream | Java | Data Stream, Design, Heap (Priority Queue), Sorting, Two Pointers | ||
1337 | The K Weakest Rows in a Matrix | Java | Array, Binary Search, Heap (Priority Queue), Matrix, Sorting | Solution Using Sorting | |
1834 | Single-Threaded CPU | Java | Array, Heap (Priority Queue), Sorting |
Interactive
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
374 | Guess Number Higher or Lower | Java | Binary Search, Interactive |
Linked List
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
19 | Remove Nth Node From End of List | Java with One Pass or Two Passes | Linked List, Two Pointers | ||
707 | Design Linked List | Java with Singly Linked List or Doubly Linked List | Design, Linked List | ||
876 | Middle of the Linked List | Java | Linked List, Two Pointers | ||
2095 | Delete the Middle Node of a Linked List | Java | Linked List, Two Pointers |
Math
Matrix
Memoization
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
70 | Climbing Stairs | Java with Dynamic Programming - Tabulation or Memoization | Dynamic Programming, Math, Memoization | ||
509 | Fibonacci Number | Java with Dynamic Programming - Tabulation or Memoization | Dynamic Programming, Math, Memoization, Recursion |
Monotonic Stack
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
496 | Next Greater Element I | Java | Array, Hash Table, Monotonic Stack, Stack | ||
503 | Next Greater Element II | Java | Array, Monotonic Stack, Stack | ||
2454 | Next Greater Element IV | Java | Array, Monotonic Stack, Stack |
Number Theory
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
1979 | Find Greatest Common Divisor of Array | Java | Array, Math, Number Theory | ||
2413 | Smallest Even Multiple | Java | Math, Number Theory |
Prefix Sum
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
238 | Product of Array Except Self | Java | Array, Prefix Sum | ||
523 | Continuous Subarray Sum | Java | Array, Hash Table, Math, Prefix Sum | ||
560 | Subarray Sum Equals K | Java | Array, Hash Table, Prefix Sum | ||
974 | Subarray Sums Divisible by K | Java with Counting or Hash Table | Array, Hash Table, Prefix Sum | ||
1480 | Running Sum of 1D Array | Java | Array, Prefix Sum | ||
2389 | Longest Subsequence With Limited Sum | Java | Array, Binary Search, Greedy, Prefix Sum, Sorting | ||
2438 | Range Product Queries of Powers | Java | Array, Bit Manipulation, Prefix Sum |
Recursion
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
509 | Fibonacci Number | Java with Dynamic Programming - Tabulation or Memoization | Dynamic Programming, Math, Memoization, Recursion |
Simulation
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
412 | Fizz Buzz | Java | Math, Simulation, String | ||
985 | Sum of Even Numbers After Queries | Java | Array, Simulation | ||
1103 | Distribute Candies to People | Java | Math, Simulation | ||
1680 | Concatenation of Consecutive Binary Numbers | Java with Bit Manipulation or Math | Bit Manipulation, Math, Simulation | ||
2169 | Count Operations to Obtain Zero | Java | Math, Simulation |
Sorting
Stack
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
496 | Next Greater Element I | Java | Array, Hash Table, Monotonic Stack, Stack | ||
503 | Next Greater Element II | Java | Array, Monotonic Stack, Stack | ||
1047 | Remove All Adjacent Duplicates In String | Java | Stack, String | ||
1544 | Make The String Great | Java | Stack, String | ||
2454 | Next Greater Element IV | Java | Array, Monotonic Stack, Stack |
String
Two Pointers
Union Find
# | Problem | Solution | Difficulty | Topics | Note |
---|---|---|---|---|---|
200 | Number of Islands | Java | Array, Breadth-First Search, Depth-First Search, Matrix, Union Find | Solution Using Breadth-First Search or Depth-First Search | |
1971 | Find if Path Exists in Graph | Java | Breadth-First Search, Depth-First Search, Graph, Union Find | Solution Using Breadth-First Search, Depth-First Search (Iterative) or Depth-First Search (Recursive) |