Algolvers (acronym for Algorithm Solvers) is a set of solutions to multiple algorithm problems that were discovered online or asked to me while interviews
- Lists
- Stack
- Queue
- Double Ended Queue
- Linked Lists
- Trees
- Binary Search Tree
- AVL Tree
- Red-Black Tree
- Priority Queue
- Heap
- Fibonacci Heap
- Van Emde Boas Tree
- Graphs
- Adjacency List
- RangeQueries
- Quadtree
- kd-Tree
- RangeTree
- Hashing
- Cuckoo Hashing
-
Array
- Array Rotate
- Move Zeros
- Fisher–Yates Shuffle
- Kadane's Algorithm
- 3 Sum
- Rotate square matrix 90º
- Search Rotated Array
- Zero Matrix
- Two Sum
- Three Sum
- Maximum Difference First Before Second
- Pair Sum To Target
- Container With Most Water
- Trapping Rain Water
- Longest Consecutive Subsequence
- Stock Buy Sell k times
- MO’s Algorithm
- Maximum Occurance In Given Range
- Missing Number
- Generate Power Set of a set
- LC-217. Contains Duplicates
- LC-728. Self Dividing Numbers
- LC-867. Transpose Matrix
- LC-896. Monotonic Array
- LC-961. N-Repeated Element in Size 2N Array
-
Tree
- LC-94. Binary Tree Inorder Traversal (Recursive) Binary Tree Inorder Traversal (Iterative)
- LC-96. Unique Binary Search Tree
- LC-98. Validate Binay Search Tree
- LC-101. Symmetric Tree
- LC-104. Maximum Depth of Binary Tree
- LC-144. Binary Tree Preorder Traversal (Recursive) Binary Tree PreOrder Traversal (Iterative)
- LC-145. Binary Tree Postorder Traversal (Recursive) Binary Tree Post Order Traversal (Iterative)
- LC-589. N-ary Tree Preorder Traversal (Recursive) N-ary Tree Preorder Traversal (Iterative)
- LC-590. N-ary Tree Postorder Traversal (Recursive) N-ary Tree Postorder Traversal (Iterative)
- LC-617. Merge Two Binary Trees
- LC-700. Search in a Binary Search Tree
- LC-938. Range Sum of BST
- LC-965. Univalued Binary Tree
-
String
- Is Unique
- Check Permutation
- One Away
- String Compression
- String Rotation
- Naïve String Search
- Rabin–Karp
- Knuth–Morris–Pratt
- Boyer–Moore
-
Linked Lists
- Reverse Iterative
- Reverse Recursive
- Floyd's Cycle Detection
-
Stack
- Balanced Parentheses
- Infix to Postfix
- Prefix to Infix
- Prefix to Postfix
- Postfix to Prefix
- Postfix to Infix
- Reverse a Stack
-
Sorting
- Insertion Sort
- Heap Sort
- Merge Sort
- Quick Sort
- Bubble Sort
- Counting Sort
-
Search
-
Selection
-
Divide and Conquer
- Recursive Max Sub Array
-
Dynamic Programming
- LC-53. Maximum Sum of a Sub Array
- Longest Common Subsequence
- Shortest Common Supersequence
- Longest Increasing Subsequence
- Probability Knight Remains In Chessboard
- Count All Matrix Paths
- Word Break
- Cutting a rod
- Integer Break (Maximum Product)
- Levenshtein distance
- Staircase Problem
- Matrix Chain Multiplication
- 0–1 Knapsack Problem
- Partition Problem
- Rod Cut
- Coin Change Problem
-
Greedy
- Minimum product subset of an array
- Maximum product subset of an array
- Maximize the sum of arr[i]*i
- Minimum sum of product of two arrays
- Activity Selection Problem
- Egyptian Fraction
- Huffman Coding
- Huffman Decoding
- Water Connection Problem
-
Graph
- Breadth First Search
- Number of islands
- Software Engineering
-
Design Patterns
- Singleton
- Observer
- Mediator
- Prototype
- Command
-
Functional Programming
-
Regular Expressions
-
Mathematical Problems
-
Shell
-
SQL