- Implementation of Data Structures and Algorithms.
- Solved Solutions from leetcode ant etc.
Helping welcome! Thanks!
π notation keys::
π- easy;π- medium;π- hard;βοΈ(1),βοΈlog(N),βοΈ(N^2)... - Big O notations;- [
βπ»] - in progress; - [
ππ»ββοΈ] - hard to solve; - [
β] - the solution is not optimal; - [
βοΈ] - done; - [
π] - Test passed Ok;
Data Structure: Arrays
| Algorithm (operation) | Level | Done | Big βοΈ Notation | Tests passed: |
|---|---|---|---|---|
| findMin | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| merge | π |
[βπ»] |
||
| pop | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| push | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| remove(position) | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| reverse | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| reverse(start, end) | π |
[βοΈ] |
βοΈ(N) |
|
| size | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| sort | π |
[βοΈ] |
βοΈ(N^2) |
[π] Open |
| GenericArray <T> | π |
Data Structure: Matrix
| Algorithm (operation) | Level | Done | Big βοΈ Notation | Tests passed |
|---|---|---|---|---|
| rotate | π |
[βοΈ] |
βοΈ(N^2) |
[π] Open |
| transpose | π |
[βοΈ] |
βοΈ(N^2) |
[π] Open |
| reflect | π |
[βοΈ] |
βοΈ(N^2) |
[π] Open |
Data Structure: Singly Linked List
| Algorithm (operation) | Level | Done | Big βοΈ Notation | Tests passed |
|---|---|---|---|---|
| append(data) | π |
[βοΈ] |
βοΈ(1) |
[π] Open |
| preppend(data) | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| find(data) | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| deleteFirst() | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| deleteLast() | π |
[βοΈ] |
βοΈ(1) |
[π] Open |
| deletePos(position) | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| length() | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| reverse() | π |
[βοΈ] |
βοΈ(N^2) |
[π] Open |
| getMid(LinkedList) | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| merge(LinkedList, LinkedList) | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| sort() | π |
[βοΈ] |
βοΈ(N Log(N)) |
[π] Open |
Data Structure: Doubly Linked List
| Algorithm (operation) | Level | Done | Big βοΈ Notation | Tests passed |
|---|---|---|---|---|
| append(data) | π |
[βοΈ] |
βοΈ(1) |
[π] Open |
| preppend(data) | π |
[βοΈ] |
βοΈ(1) |
[π] Open |
| deleteFirst() | π |
[βοΈ] |
βοΈ(1) |
[π] Open |
| deleteLast() | π |
[βοΈ] |
βοΈ(1) |
[π] Open |
Data Structure: Stack<Listnode>
| Algorithm (operation) | Level | Done | Big βοΈ Notation | Tests passed |
|---|---|---|---|---|
| getMin() | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| peak() | π |
[βοΈ] |
βοΈ(1) |
[π] Open |
| pop() | π |
[βοΈ] |
βοΈ(1) |
[π] Open |
| push(data) | π |
[βοΈ] |
βοΈ(1) |
[π] Open |
Data Structure: Queue
| Algorithm (operation) | Level | Done | Big βοΈ Notation |
|---|---|---|---|
| isEmpty | π |
[βπ»] |
|
| peak | π |
[βπ»] |
|
| enqueue | π |
[βπ»] |
|
| dequeue | π |
[βπ»] |
Data Structure: Hash Table<Listnode>
| Algorithm (operation) | Level | Done | Big βοΈ Notation |
|---|---|---|---|
| hash(key) | π |
[βπ»] |
|
| set(key, value) | π |
[βπ»] |
|
| delete(key) | π |
[βπ»] |
|
| get(key) | π |
[βπ»] |
|
| has(key) | π |
[βπ»] |
|
| getKeys() | π |
[βπ»] |
|
| getValues() | π |
[βπ»] |
Data Structure: Heap
| Algorithm (operation) | Level | Done | Big βοΈ Notation |
|---|---|---|---|
| add | π |
[βπ»] |
|
| remove | π |
[βπ»] |
Data Structure: Trie
| Algorithm (operation) | Level | Done | Big βοΈ Notation |
|---|---|---|---|
| addWord | π |
[βπ»] |
|
| deleteWord | π |
[βπ»] |
Data Structure: Tree
| Algorithm (operation) | Level | Done | Big βοΈ Notation | Tests passed |
|---|---|---|---|---|
| Binary Tree | π |
[βπ»] |
||
| Binary Tree Recursive: insert(data) | π |
[βοΈ] |
βοΈlog(N) |
[π] Open |
| Binary Tree Recursive: preOrderPrint() | π |
[βοΈ] |
βοΈlog(N) |
[π] Open |
| Binary Tree Recursive: inOrderPrint() | π |
[βοΈ] |
βοΈlog(N) |
[π] Open |
| Binary Tree Recursive: postOrderPrint() | π |
[βοΈ] |
βοΈlog(N) |
[π] Open |
| Binary Tree Recursive: find(data) | π |
[βοΈ] |
βοΈlog(N) |
[π] Open |
| Binary Tree Recursive: delete() | π |
[βοΈ] |
βοΈlog(N) |
[π] Open |
| Binary Tree Iterative: insert(data) | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| Binary Tree Iterative: preOrderPrint() | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| Binary Tree Iterative: inOrderPrint() | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| Binary Tree Iterative: postOrderPrint() | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| AVL Tree | π |
[βπ»] |
||
| Fenwick Tree | π |
[βπ»] |
||
| Red-Black Tree | π |
[βπ»] |
||
| Segment Tree | π |
[βπ»] |
-
Data Structure: Graph
| Algorithm (operation) | Level | Done | Big βοΈ Notation |
|---|---|---|---|
| directed | π |
[βπ»] |
|
| undirected | π |
[βπ»] |
-
Data Structure: Search
| Algorithm (operation) | Level | Done | Big βοΈ Notation | Tests passed |
|---|---|---|---|---|
| Binary Search Iterative | π |
[βοΈ] |
βοΈ(N) |
[π] Open |
| Binary Search Recursive | π |
[βοΈ] |
βοΈ(log N) |
[π] Open |
-
Data Structure: Sorting
| Algorithm (operation) | Level | Done | Big βοΈ Notation | Tests passed |
|---|---|---|---|---|
| Buble Sort <T> | π |
[βοΈ] |
βοΈ(N^2) |
[π] Open |
| Quick Sort | π |
[βοΈ] |
βοΈ(N^2) |
[π] Open |
| MergeSort | π |
[βοΈ] |
βοΈ(N log(N)) |
[π] Open |
| Insertion Sort | π |
[βοΈ] |
βοΈ(N^2) |
[π] Open |
| Arrays SubSkills | Lvl | Complexity: Time , Space | Solved Problems |
|---|---|---|---|
| Elements Sum | π | β± βοΈ(N^2), πΎ βοΈ(N) |
1. Two Sum |
| Duplicates Remove | π | β± βοΈ(N), πΎ βοΈ(1) |
26. Remove Duplicates from Sorted Array |
| Element Search | π | β± βοΈ(N), πΎ βοΈ(1) |
35. Search Insert Position |
| Elements Sort | π | β± βοΈ(N^2), πΎ βοΈ(1) |
88. Merge Sorted Array |
| Elements Memoization | π | β± βοΈ(N), πΎ βοΈ(1) |
121. Best Time to Buy and Sell Stock |
| Elements Move | π | β± βοΈ(N), πΎ βοΈ(1) |
283. Move Zeroes |
| Elements Sort , Math | π | β± βοΈ(N^2), πΎ βοΈ(1) |
977. Squares of a sorted Array |
| Element Two Pointers | π | β± βοΈ(N), πΎ βοΈ(1) |
11. Container with Most Water |
| Permutations | π | β± βοΈ(N^2), πΎ βοΈ(1) |
31. Next Permutation |
| Backtracking | π | β± βοΈ(N^2), πΎ βοΈ(N) |
46. Permutations |
| Matrix Operations | π | β± βοΈ(N^2), πΎ βοΈ(1) |
48. Rotate Image |
| Elements Math | π | β± βοΈ(N), πΎ βοΈ(1) |
53. Maximum Subarray |
| Elements Sort | π | β± βοΈ(N^2), πΎ βοΈ(N^2) |
56. Merge Intervals |
| Two Pointers | π | β± βοΈ(N), πΎ βοΈ(N) |
167. Two Sum II |
| Two Pointers | π | β± βοΈ(N), πΎ βοΈ(N) |
189. Rotate Array |
| DP | π | β± βοΈ(N), πΎ βοΈ(1) |
198. House Robber |
| Elements Sort | π | β± βοΈ(log(N)), πΎ βοΈ(1) |
4. Median of Two Sorted Arrays |
| Backtracking SubSkills | Lvl | Complexity: Time , Space | Solved Problems |
|---|---|---|---|
| Hash Table | π | β± βοΈ(N), πΎ βοΈ(N) |
17. Letter Combinations of a Phone Number |
| Recursion | π | β± βοΈ(N^2), πΎ βοΈ(N) |
22. Generate Parentheses |
| String, Recursion | π | β± βοΈ(N^2), πΎ βοΈ(N) |
39. Combination Sum |
| Recursion | π | β± βοΈ(N^2), πΎ βοΈ(2N) |
77. Combinations |
| Matrix, Recursion | π | β± βοΈ(N^2), πΎ βοΈ(N^2) |
79. Word Search |
| String, Recursion | π | β± βοΈ(N^2), πΎ βοΈ(N) |
784. Letter Case Permutation |
| Skills by abc | Diff | Language | Solved Problems |
|---|---|---|---|
| Binary Search | π easy | Java | 367. Valid Perfect Square |
| Binary Search | π medium | Java | 33. Search In Rotated Sorted Array |
| Binary Search | π medium | Java | 34. Find First and Last Position of Element in Sorted Array |
| Binary Search | π medium | Java | 153. Find Minimum in Rotated Sorted Array |
| Binary Search | π medium | Java | 167. Two Sum II |
| Binary Search | π hard | Java | 4. Median of Two Sorted Arrays |
| βΏ | βΏ | βΏ | βΏ |
| Binary Tree | π easy | Java | 94. Binary Tree Inorder Traversal |
| Binary Tree | π easy | Java | 100. Same Tree |
| Binary Tree | π easy | Java | 101. Symmetric Tree |
| Binary Tree | π easy | Java | 104. Maximum Depth of Binary Tree |
| Binary Tree | π easy | Java | 108. Convert Sorted Array To Binary Search Tree |
| Binary Tree | π easy | Java | 145. Binary Tree Postorder Traversal |
| Binary Tree | π easy | Java | 226. Invert Binary Tree |
| Binary Tree | π easy | Java | 543. Diameter of Binary Tree |
| Binary Tree | π easy | Java | 617. Merge Two Binary Trees |
| Binary Tree | π medium | Java | 98. Validate Binary Search Tree |
| Binary Tree | π medium | Java | 102. Binary Tree Level Order Traversal |
| Binary Tree | π medium | Java | 105. Construct Binary Tree from Preorder and Inorder Traversal |
| Binary Tree | π medium | Java | 114. Flatten Binary Tree to Linked List |
| Binary Tree | π medium | Java | 116. Populating Next Right Pointers in Each Node |
| Binary Tree | π medium | Java | 199. Binary Tree Right Side View |
| Binary Tree | π medium | Java | 669. Trim a Binary Search Tree |
| βΏ | βΏ | βΏ | βΏ |
| Bit Manipulation | π easy | Java | 67. Add Binary |
| Bit Manipulation | π easy | Java | 136. Single Number |
| Bit Manipulation | π easy | Java | 191. Number of 1 Bits |
| Bit Manipulation | π easy | Java | 338. Counting Bits |
| βΏ | βΏ | βΏ | βΏ |
| Breadth-First Search | π medium | Java | 116. Populating Next Right Pointers in Each Node |
| Breadth-First Search | π medium | Java | 994. Rotting Oranges |
| βΏ | βΏ | βΏ | βΏ |
| Design | π easy | Java | 155. Min Stack |
| βΏ | βΏ | βΏ | βΏ |
| Depth-First Search | π easy | Java | 733. Flood Fill |
| Depth-First Search | π medium | Java | 98. Validate Binary Search Tree |
| Depth-First Search | π medium | Java | 695. Max Area of Islands |
| βΏ | βΏ | βΏ | βΏ |
| Divide and Conquer | π easy | Java | 190. Reverse Bits |
| Divide and Conquer | π hard | Java | 4. Median of Two Sorted Arrays |
| βΏ | βΏ | βΏ | βΏ |
| Dynamic Programming | π easy | Java | 70. Climbing Stairs |
| Dynamic Programming | π easy | Java | 118. Pascal's Triangle |
| Dynamic Programming | π easy | Java | 119. Pascal's Triangle II |
| Dynamic Programming | π easy | Java | 121. Best Time to Buy and Sell Stock |
| Dynamic Programming | π easy | Java | 509. Fibonacci Number |
| Dynamic Programming | π medium | Java | 5. Longest Palindromic Substring |
| Dynamic Programming | π medium | Java | 53. Maximum Subarray |
| Dynamic Programming | π medium | Java | 62. Unique Paths |
| Dynamic Programming | π medium | Java | 63. Unique Paths II |
| Dynamic Programming | π medium | Java | 97. Interleaving String |
| Dynamic Programming | π medium | Java | 198. House Robber |
| Dynamic Programming | π medium | Java | 322. Coin Change |
| Dynamic Programming | π medium | Java | 542. 01 Matrix |
| βΏ | βΏ | βΏ | βΏ |
| Hash Table | π easy | Java | 1. Two Sum |
| Hash Table | π easy | Java | 13. Roman to Integer |
| Hash Table | π easy | Java | 202. Happy Number |
| Hash Table | π easy | Java | 217. Contains Duplicate |
| Hash Table | π easy | Java | 448. Find All Numbers Disappeared in an Array |
| Hash Table | π easy | Java | 929. Unique Email Addresses |
| Hash Table | π medium | Java | 3. Longest Substring Without Repeating Characters |
| Hash Table | π medium | Java | 49. Group Anagram |
| Hash Table | π medium | Java | 128. Longest Consecutive Sequence |
| βΏ | βΏ | βΏ | βΏ |
| Linked List | π easy | Java | 21. Merge Two Sorted Lists |
| Linked List | π easy | Java | 160. Intersection of Two Linked Lists |
| Linked List | π easy | Java | 203. Remove Linked List Elements |
| Linked List | π easy | Java | 206. Reverse Linked List |
| Linked List | π easy | Java | 234. Palindrome Linked List |
| Linked List | π easy | Java | 876. Middle of the Linked List |
| Linked List | π medium | Java | 2. Add Two Numbers |
| Linked List | π medium | Java | 19. Remove Nth Node From End of List |
| Linked List | π medium | Java | 116. Populating Next Right Pointers in Each Node |
| Linked List | π medium | Java | 148. Sort List |
| Linked List | π hard | Java | 23. Merge k Sorted Lists |
| βΏ | βΏ | βΏ | βΏ |
| Math | π easy | Java | 7. Reverse Integer |
| Math | π easy | Java | 9. Palindrome Number |
| Math | π easy | Java | 231. Power of Two |
| Math | π easy | Java | 258. Add Digits |
| Math | π medium | Java | 2. Add Two Numbers |
| βΏ | βΏ | βΏ | βΏ |
| Matrix | π easy | Java | 733. Flood Fill |
| Matrix | π medium | Java | 48. Rotate Image |
| Matrix | π medium | Java | 695. Max Area of Islands |
| βΏ | βΏ | βΏ | βΏ |
| Memoization | π easy | Java | 509. Fibonacci Number |
| βΏ | βΏ | βΏ | βΏ |
| Merge Sort | π medium | Java | 148. Sort List |
| Merge Sort | π hard | Java | Merge k Sorted Lists |
| βΏ | βΏ | βΏ | βΏ |
| Number Theory | π medium | Java | 204. Count Primes |
| βΏ | βΏ | βΏ | βΏ |
| Recursion | π easy | Java | 21. Merge Two Sorted Lists |
| Recursion | π easy | Java | 191. Number of 1 Bits |
| Recursion | π easy | Java | 206. Reverse Linked List |
| Recursion | π easy | Java | 234. Palindrome Linked List |
| Recursion | π easy | Java | 231. Power of Two |
| Recursion | π easy | Java | 509. Fibonacci Number |
| Recursion | π medium | Java | 2. Add Two Numbers |
| βΏ | βΏ | βΏ | βΏ |
| Sliding Window | π easy | Java | 643. Maximum Average Subarray I |
| Sliding Window | π medium | Java | 3. Longest Substring Without Repeating Characters |
| Sliding Window | π medium | Java | 438. Find All Anagrams in a String |
| Sliding Window | π medium | Java | 567. Permutation in String |
| βΏ | βΏ | βΏ | βΏ |
| Stack | π easy | Java | 20. Valid Parentheses |
| Stack | π easy | Java | 155. Min Stack |
| Stack | π medium | Java | 394. Decode String |
| Stack | π medium | Java | 1003. Check If Word Is Valid After Substitutions |
| βΏ | βΏ | βΏ | βΏ |
| Sorting | π easy | Java | 88. Merge Sorted Array |
| Sorting | π easy | Java | 977. Squares of a sorted Array |
| Sorting | π medium | Java | 56. Merge Intervals |
| βΏ | βΏ | βΏ | βΏ |
| String | π easy | Java | 14. Longest Common Prefix |
| String | π easy | Java | 242. Valid Anagram |
| String | π easy | Java | 344. Reverse String |
| String | π easy | Java | 387. First Unique Character in a String |
| String | π easy | Java | 551. Student Attendance Record I |
| String | π easy | Java | 557. Reverse Words in a String III |
| String | π easy | Java | 771. Jewels and Stones |
| String | π medium | Java | 3. Longest Substring Without Repeating Characters |
| String | π medium | Java | 5. Longest Palindromic Substring |
| String | π medium | Java | 567. Permutation in String |
| String | π medium | Java | 784. Letter Case Permutation |
| βΏ | βΏ | βΏ | βΏ |
| Tree | π easy | Java | [ 617. Merge Two Binary Trees |
| Tree | π medium | Java | 116. Populating Next Right Pointers in Each Node |
| Tree | π medium | Java | 687. Longest Unvalued Path |
| βΏ | βΏ | βΏ | βΏ |
| Two Pointers | π easy | Java | 125. Valide Palindrome |
| Two Pointers | π easy | Java | 202. Happy Number |
| Two Pointers | π easy | Java | 283. Move Zeroes |
| Two Pointers | π easy | Java | 344. Reverse String |
| Two Pointers | π easy | Java | 392. Is Subsequence |
| Two Pointers | π easy | Java | 557. Reverse Words in a String III |
| Two Pointers | π medium | Java | 11. Container with Most Water |
| Two Pointers | π medium | Java | 19. Remove Nth Node From End of List |
| Two Pointers | π medium | Java | 167. Two Sum II |
| Two Pointers | π medium | Java | 189. Rotate Array |
| Two Pointers | π medium | Java | 567. Permutation in String |
| βΏ | βΏ | βΏ | βΏ |
| Union Find | π medium | Java | 200. Number of Islands |
need think
- [
βοΈ JS] Build Tower - [
βοΈ JS] Camel Case - [
βοΈ Java] Counting Duplicates - [
βοΈ Java] Help The Book Seller - [
βοΈ Java] Simple Encryption - [
βοΈ JS] Pete The Baker - [
βοΈ Java] Playing With Digits
- run all tests
mvn clean test
- and result in the terminal:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running dataStructures.tree.binarySearchTreeRecursive.BinarySearchTreeRecursiveTest
Test - Binary Search Tree Recursive : insert(data) - passed ok
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 sec
Running dataStructures.tree.binarySearchTreeIterative.BinarySearchTreeIterativeTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running dataStructures.doublyLinkedList.DoublyLinkedListTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running dataStructures.arrays.ArraysTest
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec
Running dataStructures.arrays.BinarySearchArrayTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec
Running dataStructures.singlyLinkedList.SinglyLinkedListTest
Tests run: 12, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running dataStructures.stack.StackTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec
Running dataStructures.matrix.MatrixTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running sorting.InsertionSortTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running sorting.QuickSortTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running sorting.BubleSortTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Running sorting.MergeSortTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
Results :
Tests run: 46, Failures: 0, Errors: 0, Skipped: 0