Curated list of some Algorithmic problems which I deem important to have in mind. Graphviz is utilized as the visualization tool to represent some graph and tree algorithms.
make deps
Several techniques/approaches could be utilized in order to find the angle of attack to a problem. Below are the tags related to the relevant techniques, approaches, data structures, etc. to ease the process of mental researching before defining the angle of an attack to a problem.
- 📃 Array
- 👉 BFS
- 🔍 Binary Search Tree
- 🔟 Bit Manipulation
- 🕳️ DFS
- 📝 Dynamic Programming
- 📈 Graph
- 🔣 HashTable
- 🌲 Heap
- 🔗 Linked List
- ✖ Math
- 🔢 Matrix
- 🔁 Recursion
- 🖇️ Sorting
- .📚 Stack and Queue
- 🔤 String
- 🌴 Tree
- 🌿 Trie
- 2️⃣ Two Pointers
- 🥉 Easy
- 🥈 Medium
- 🥇 Hard
- 🏅 Very Hard
- Absolute distinct count 📃 | 🥉
- Array rank transform 📃 🔣
- Binary Gap 📃
- Check if array is circular 📃
- Closest 3 Sum 📃
- Container with most water 📃
- Contains duplicate II 📃
- Cyclic rotation 📃
- Equi leader 📃
- Find minimum in rotated sorted array 📃
- Find minimum average slice 📃
- Find pivot index 📃
- Find unpaired element in array 📃
- Flatten array 📃
- Frequency sort 📃
- Genomic range query 📃
- Group by given group size 📃
- H-index 📃
- K-Closest distance origin 📃
- Longest consecutive sequence 📃
- Majority element 📃
- Max counter 📝
- Max product sub-array 📝
- Max sum sub-array 📝
- Median of two sorted array 📝
- Non-decreasing by removing one 📝
- Number of disc intersections 📝
- Partition array into parts with equal sum 📝
- Passing cars 📝
- Permutation check 📝
- Permutation missing element 📈
- Permutations 📈
- Remove duplicates from sorted array II 📈
- Replace elements with greatest element on right side 📈
- Rotate array 📈
- Search in rotated sorted array 📈
- Shortest unsorted continuous array 🌲
- Insert interval
- Merge intervals
- Count & Length 🔗
- Front and back split 🔗
- Insert at nth index 🔗
- Intersection of 2 linked lists 🔗
- Linked list cycle 🔗
- Merge K sorted lists 🔗
- Merge 2 sorted lists 🔗
- Odd even linked lists 🔗
- Rearrange odd even nodes 🔗
- Remove nth node from the end 🔗
- Reorder linked list 🔗
- Reverse linked list 🔗
- Fibonacci 📝 🔁
- Rotate Image 🔢
- Set matix zeros 🔢
- Spiral matrix 🔢
- Word search 🔢
- Binary search 🔍
- Bubble Sort 🖇️
- Heap Sort 🖇️
- Merge Sort 🖇️
- Quick Sort 🖇️
- Insertion Sort 🖇️
- Selection Sort 🖇️
- Bracket Sequence 📚
- First non repeating character 🔤
- Get all the permutations in a string 🔤
- Group anagrams 🔤
- Kth non repeating character 🔤
- Is my friend cheating 🔤
- Longest palindrome 🔤
- Longest sub-string without repeating characters 🔤
- Valid palindrome 🔤
- Check if tree is balanced 🌴
- Check if tree is complete 🌴
- Find largest value in each row 🌴
- Flatten tree to linked list 🌴
- From In-Order to Level Order 🌴
- Is same tree 🌴
- Kth smallest element in BST 🌴
- Find the lowest common ancestor 🌴
- Max depth of tree 🌴
- Max path sum 🌴
- Check if tree is balanced 🌴
- Validate binary search tree 🌴
- BST DLL Representation 🔍
- Build BST from Array 🔍
- Build BST from pre-order Array 🔍
- Insert key in BST 🔍
- Search key in BST 🔍
- Build a graph structure 📈
- Traverse BFS 📈
- Traverse DFS recursive 📈
- Traverse DFS stack 📈
- Build a hash table 🔣
- Build Max Heap structure 🌲
- Build Min Heap structure 🌲
- Build a priority queue structure 🌲
- Build a linked-list structure 🔗
- Traverse Tree BFS recursive 🌴
- Traverse Tree BFS queue 🌴
- Traverse Tree BFS stack 🌴
- Traverse Tree DFS In-order 🌴
- Traverse Tree DFS Pre-order 🌴
- Traverse Tree DFS Post-order 🌴
- Build Tree from In-Order and Post-Order Array 🌴
- Build Tree from In-Order and Pre-Order Array 🌴
- Build Tree from Level Order array 🌴
- Build Tree from Post-Order array 🌴
- Build Tree from Pre-Order array 🌴