Problems and solutions of Leetcode problems.
Solved using python for practice and reference.
Leetcode Number | Leetcode Problem Title | Difficulty | Data Structure | Algorithm |
---|---|---|---|---|
1 | Two Sums | Easy | Array | Hashmap |
2 | Add Two Numbers | Medium | LinkedList | - |
11 | Container with Most Water | Medium | Array | Two pointer |
15 | 3Sum | Medium | Array | Two pointer |
17 | Letter Combinations of a Phone Number | Medium | Array | Backtracking/Recursion |
19 | Remove Nth Node From End of List | Medium | LinkedList | Two pointer |
20 | Valid Parentheses | Easy | Stack | Iteration/Hashmap |
21 | Merge Two Sorted List | Easy | LinkedList | Sorting |
22 | Generate Paranthesis | Medium | Array | Recursion/Backtracking |
23 | Merge k Sorted List | Hard | LinkedList | Sorting |
24 | Swap nodes in pairs | Medium | LinkedList | Recursion |
33 | Search in Rotated SOrted Array | Medium | Array | Binary Search |
35 | Search Insert Position | Easy | Array | Binary Search |
39 | Combination Sum | Medium | Array | Recursion/Backtracking |
40 | Combination Sum | Medium | Array | Recursion/Backtracking |
46 | Permutations | Medium | Array | Recursion/Backtracking |
47 | Permutations II | Medium | Array | Recursion/Backtracking |
49 | Group Anagrams | Medium | Array | Hashmap |
51 | N-Queens | Hard | Array | Recursion/Backtracking |
64 | Minimum Path Sum | Medium | 2D Array | Dynamic Programming |
70 | Climbing Stairs | Easy | Array | Dynamic Programming |
72 | Edit Distance | Medium | String | Dynamic Programming |
75 | Sort Colors | Medium | Array | Two pointer/Sorting Algorithm |
76 | Remove Duplicates in Sorted Array | Easy | Array | Two pointer |
77 | Combinations | Medium | Array | Backtracking/Recursion |
78 | Subsets | Medium | Array | Recursion/Backtracking |
79 | Word Search | Medium | Array | Backtracking |
84 | Largest Rectangle in HIstogram | Hard | Array | Stack |
100 | Same Tree | Easy | Tree | Recursion |
101 | Symmetric Tree | Easy | Tree | Recursion |
104 | Maximum Depth of Binary Tree | Easy | tree | BFS |
110 | Balanced Binary Tree | Easy | Tree | Recursion |
118 | Pascal's Triangle | Easy | Array | Iteration |
119 | Pascal's Triangle II | Easy | Array | Iteration/Recursion |
121 | Best Time to Buy and Sell Stock | Easy | Array | Sliding Window |
123 | Best Time to Buy and Sell Stock III | Hard | Array | Dynamic Programming |
125 | Valid Palindrome | Easy | String | Two pointer |
128 | Longest Consecutive Sequence | Medium | Array | HashSet |
138 | Copy List with Random Pointer | Medium | LinkedList | Two Passes |
141 | Linked List Cycle | Easy | LinkedList | Two pointer |
143 | Reorder List | Medium | LinkedList | Two pointer |
150 | Evaluate Reverse Polish Notation | Medium | Array | Stack |
153 | Find Minimum in Rotated Sorted Array | Medium | Array | Binary Search |
155 | Min Stack | Medium | Array | Stack |
162 | Find Peak Elements | Medium | Array | Binary Search |
200 | Number of Islands | Medium | 2D Array | BFS/DFS |
203 | Remove Linked List Elements | Easy | LinkedList | Two pointer |
206 | Reverse Linked List | Easy | LinkedList | Iteration/Recursive |
207 | Course Schedule | Medium | 2D Array | DFS |
216 | Combination Sum II | Medium | Array | Backtracking |
217 | Contains Duplicate | Easy | Array | - |
219 | Contains Duplicate II | Easy | Array | Hashmap |
226 | Invert Binary Tree | Easy | Tree | Recursion |
237 | Delete Node in a Linked List | Medium | LinkedList | Two pointer |
238 | Product of Array Except Self | Medium | Array | - |
239 | Sliding Window MAximum | Hard | Array(Deque) | Sliding Window |
242 | Valid Anagram | Easy | Array | - |
256 | 256_Paint_House | Medium | 2D Array | Dynamic Programming |
278 | First Bad Version | Easy | Array | Binary Search |
287 | Find the Duplicate Number | Medium | Array/LinkedList | Floyd's Cyclic Detection/Two pointers |
344 | Reverse String | Easy | String | Two pointer/Recursion |
347 | Top K Frequent Elements | Medium | Array | HashSet |
349 | Intersection of Two Arrays | Easy | Array | Binary Search |
377 | Combination Sum IV | Medium | Array | Backtracking/Recursion/Dynamic Programming |
424 | Longest Repeating Character Replacement | Medium | Array | Binary Search |
441 | Arranging coins | Easy | Array | Binary Search |
509 | Fibonacci Number | Easy | - | Recursion |
542 | Fibonacci Number | Medium | 2D Array | BFS |
543 | Diameter of a Binary Tree | Easy | Tree | Recursion/DFS |
547 | Number of provinces | Medium | 2D Array | Recursion/DFS |
572 | Subtree of Another tree | Easy | Tree | Recursion |
643 | Maximum Average Subarray I | Easy | Array | Sliding window |
695 | Max Area of Island | Medium | 2DArray | BFS |
700 | Search in Binary Search Tree | Easy | Tree | Recursive/ Iteration/BST |
704 | Binary Search | Easy | Array | Binary Search |
733 | Binary Search | Easy | 2D Array | BFS |
739 | Daily Temperatures | Medium | Array | Stack |
746 | Min Cost Climbing Stairs | Easy | Array | Dynamic Programming |
763 | Partition Labels | Medium | Array | Hashmap |
771 | Jewels and Stones | Easy | Array | Counter |
784 | Letter Case Permutation | Medium | Array | Backtracking/Iteration |
797 | All Paths From Source to Target | Medium | Graph/2D Array | BFS/DFS |
853 | Car Fleet | Medium | Array | Stack |
875 | Koko Eating Bananas | Medium | Array | Binary Search |
876 | Middle of the Linkedlist | Easy | LinkedList | Two pointer |
904 | Fruit Into Baskets | Medium | Array | Sliding Window, Two Pointer |
922 | Sort Array By Parity II | Easy | Array | Two pointer |
944 | Rotting Oranges | Medium | 2D Array | BFS |
981 | Time Based Key-Value Store | Medium | Array | Binary Search |
983 | Minimum Cost For Tickets | Medium | 2D Array | Dynamic Programming |
1004 | Max Consecutive Ones III | Medium | Array | Sliding window, Two pointer |
1254 | Number of Closed Islands | Medium | 2DArray | DFS |
1365 | How Many Numbers Are Smaller Than the Current Number | Easy | Array | Hashmap |
1428 | Minimum Number of Days to Make m Bouquets | Medium | Array | Binary Search |