🆘 Algorithms 🆘
- ** Select leetcode problems with their most optimal solutions explained in detail!**
- The order questions are listed in is on purpose and is recommended to follow

📚Arrays
| Title |
Recommended Order # |
Leetcode # |
Difficulty |
Tags |
Solution |
| Plus One |
1 |
66 |
Easy |
Array |
Python / Go / Dart / Rust / Javascript |
| Two Sum |
2 |
1 |
Easy |
Array, Hash Map |
Python / Go / Kotlin / Dart / Rust / Javascript |
| Valid Parentheses |
3 |
20 |
Easy |
Array, Stack |
Python / Go |
| Maximum Subarray |
4 |
53 |
Easy |
Array |
Python / Go / Dart |
| First Unique Character in a String |
5 |
387 |
Easy |
Array, Hash Map |
Python / Go / Javascript / Dart |
| Move Zeroes |
6 |
283 |
Easy |
Array, Pointer |
Python / Go |
| Find Pivot Index |
7 |
724 |
Easy |
Array, Sliding Window |
Python / Go / Kotlin |
| Best Time to Buy and Sell Stock |
8 |
122 |
Easy |
Array |
Python / Go |
| Shortest Word Distance |
9 |
243 |
Easy |
Array |
Python |
| ZigZag Conversion |
10 |
6 |
Medium |
Array |
Python |
| First Missing Positive |
11 |
41 |
Hard |
Array |
Python / Go |
| Spiral Matrix |
12 |
54 |
Medium |
Array |
Python |
| Sorted Two Sum |
13 |
167 |
Easy |
Array |
Python |
| K-diff Pairs in an Array |
14 |
532 |
Easy |
Array, Hash Map |
Python |
| K Difference Uniqie Pairs |
15 |
- |
Easy |
Array |
Python |
| Increasing Triplet Subsequence |
16 |
334 |
Medium |
Array |
Python |
| Find First and Last Position of Element in Sorted Array |
17 |
34 |
Medium |
Array, Binary Search |
Python |
| Merge Intervals |
18 |
56 |
Easy |
Array |
Python |
| Valid Sudoku |
19 |
36 |
Medium |
Array, Hash Map |
Python |
| Three Sum |
20 |
- |
Medium |
Array, Two Sum |
Python |
| Maximum Size Subarray Sum Equals K |
21 |
325 |
Medium |
Array, Two Sum |
Python |
| Product of Array Except Self |
22 |
238 |
Medium |
Array |
Python |
| Trapping Rain Water |
23 |
42 |
Hard |
Array, Two Pointer |
Python |
| Longest Consecutive Sequence |
24 |
128 |
Hard |
Array |
Python |
| Top K Frequent Elements |
25 |
347 |
Medium |
Array, Counting Sort, Hashmap, Heap |
Python |
🧵 Strings
| Title |
Leetcode # |
Difficulty |
Tags |
Solution |
| First Unique Character in a String |
387 |
Easy |
String, Hash Map |
Python / Javascript / Dart / Go |
| Reverse Words in String |
344 |
Easy |
String |
Python |
| Reverse Words in String II |
557 |
Easy |
String |
Python |
| Strobogrammatic Number |
246 |
Easy |
String |
Python |
| Valid Anagram |
242 |
Easy |
Hash Map |
Python |
| Compare Version Number |
165 |
Easy |
String |
Python |
| String To Integer |
8 |
Medium |
String |
Python |
| One Edit Distance |
161 |
Medium |
String, Dynamic Programming |
Python |
| Add Binary |
67 |
Easy |
String, Recursion |
Python |
| Longest Palindromic Substring |
5 |
Medium |
String |
Python |
| Longest Substring Without Repeating Characters |
3 |
Medium |
String |
Python |
| Text Justification |
68 |
Hard |
String, Scheduling |
Python |
| Minimum Window Substring |
76 |
Hard |
String, Sliding Window |
Python |
🌲 Trees
| Title |
Recommended Order # |
Leetcode # |
Difficulty |
Tags |
Solution |
| Binary Tree Inorder Traversal |
1 |
94 |
Easy |
Tree, Recursive, Iterative |
Python |
| Insert into a Binary Search Tree |
2 |
- |
Easy |
Tree |
Python |
| Preorder Traversal |
3 |
- |
Easy |
Tree traversal |
Python |
| Postorder Traversal |
3 |
- |
Medium |
Tree traversal |
Python |
| Inorder Successor |
4 |
285 |
Medium |
Tree traversal |
Python |
| Closest Binary Search Tree Value |
5 |
Easy |
270 |
BST Search |
Python |
| Binary Tree Level Order Traversal |
6 |
102 |
Medium |
BFS |
Python |
| Validate Binary Search Tree |
7 |
98 |
Medium |
DFS, Recursion |
Python |
| Same Tree |
9 |
100 |
Easy |
Recursion |
Python |
| Invert Binary Tree |
10 |
226 |
Easy |
Recursion |
Python |
| Symmetric Tree |
11 |
101 |
Easy |
Tree |
Python |
| Univalued Binary Tree |
12 |
965 |
Easy |
Tree |
Python |
| Kth Smallest Element in a BST |
13 |
230 |
Medium |
Tree |
Python |
| Path Sum |
14 |
112 |
Easy |
DFS, Recursion |
Python |
| Minimum Depth of Binary Tree |
15 |
111 |
Easy |
Tree |
Python |
| Sum Root to Leaf Numbers |
16 |
129 |
Medium |
DFS, Recursion |
Python |
| Flatten Binary Tree to Linked List |
17 |
114 |
Medium |
Recursion |
Python |
| Convert BST to Greater Tree |
18 |
538 |
Easy |
BFS |
Python |
| Binary Tree Zigzag Level Order Traversal |
19 |
103 |
Medium |
BFS |
Python |
| Populating Next Right Pointers in Each Node |
20 |
116 |
Medium |
BFS |
Python |
| Binary Tree Maximum Path Sum |
21 |
124 |
Hard |
DFS, Recursion |
Python |
| Delete Nodes And Return Forest |
22 |
1110 |
Medium |
DFS, Recursion |
Python |
| Binary Search Tree to Greater Sum Tree |
23 |
1038 |
Medium |
In Order |
Python |
🔗 Linked Lists
| Title |
Recommended Order # |
Leetcode # |
Difficulty |
Tags |
Solution |
| Reverse Linked List |
1 |
206 |
Easy |
Linked List |
Python |
| Merge Linked List |
2 |
- |
Easy |
Linked List, Recursion |
Python |
| Add Two Numbers |
3 |
2 |
Medium |
Linked List |
Python |
| Delete Node From Linked List |
4 |
237 |
Easy |
Linked List |
Python |
| Merge k Sorted Lists |
5 |
23 |
Hard |
Linked List, Heap |
Python |
🥞 Stack
| Title |
Recommended Order # |
Leetcode # |
Difficulty |
Tags |
Solution |
| Decode String |
1 |
394 |
Medium |
Stack |
Python |
⚖️ Heaps
| Title |
Recommended Order # |
Leetcode # |
Difficulty |
Tags |
Solution |
| Meeting Rooms II |
1 |
253 |
Medium |
Heap |
Python |
💯 Bitwise
| Title |
Leetcode # |
Difficulty |
Tags |
Solution |
| Number of 1 Bits |
191 |
Easy |
Bitwise |
Python / C |
| Hamming Distance |
461 |
Easy |
Bitwise |
Python |
| Single Number |
91 |
Easy |
Bitwise |
Python |
📈 Graph
| Title |
Recommended Order # |
Leetcode # |
Difficulty |
Tags |
Solution |
| Number Of Islands |
1 |
200 |
Medium |
Depth First Search |
Python / C |
| Flood Fill |
2 |
733 |
Easy |
Depth First Search |
Python |
| Graph Valid Tree |
3 |
261 |
Easy |
Graph |
Python |
| Number of Connected Components in an Undirected Graph |
4 |
323 |
Medium |
Depth First Search |
Python |
| Topological Sort |
5 |
- |
Medium |
Graph |
Python |
| Validate DAG |
6 |
- |
Medium |
Graph |
Python |
| Redundant Connection |
7 |
684 |
Medium |
Graph |
Python |
| Course Schedule |
8 |
207 |
Medium |
Top Sort |
Python |
| Course Schedule II |
9 |
210 |
Medium |
Top Sort |
Python |
🗃️ Sorting
| Title |
Leetcode # |
Difficulty |
Tags |
Solution |
| Merge Sort |
- |
Easy |
Sorting, Recursion |
Python |
🔍Searching
| Title |
Recommended Order # |
Leetcode # |
Difficulty |
Tags |
Solution |
| Find First and Last Position of Element in Sorted Array |
1 |
34 |
Medium |
Binary Search |
Python |
| Search in Rotated Sorted Array |
2 |
33 |
Medium |
Binary Search |
Python |
⚒️ Divide and Conquer
| Title |
Recommended Order # |
Leetcode # |
Difficulty |
Tags |
Solution |
| Pow(x, n) |
1 |
50 |
Medium |
Divide and Conquer, Recursion |
Python |
| Number of Inversions |
- |
- |
Medium |
Divide and Conquer |
Python |
| Majority Element |
- |
- |
Medium |
Divide and Conquer |
Python |
🤖 Dynamic Programming
| Title |
Recommended Order # |
Leetcode # |
Difficulty |
Tags |
Solution |
| Climbing Stairs |
1 |
70 |
Easy |
Dynamic Programming |
Python |
| Coin Change 2 |
2 |
518 |
Medium |
Dynamic Programming |
Python |
| Decode Ways |
3 |
91 |
Medium |
Dynamic Programming, Top Down |
Python |
| Unique Paths |
4 |
62 |
Medium |
Dynamic Programming, Top Down |
Python |
| Delete Operation for Two Strings |
5 |
583 |
Medium |
Dynamic Programming |
Python |
| Edit Distance |
6 |
72 |
Hard |
Dynamic Programming, Top Down |
Python |
| Longest Common Subsequence |
7 |
1143 |
Hard |
Dynamic Programming, Bottom Up |
Python |
| Maximum Length of Repeated Subarray |
8 |
718 |
Medium |
Dynamic Programming, Bottom Up, Longest Common Subarray |
Python |
🎨 Design
| Title |
Recommended Order # |
Leetcode # |
Difficulty |
Tags |
Solution |
| LRU Cache |
1 |
146 |
Medium |
Linked List, Hashmap |
Python |