Day | Problem Statement | Solution | Difficulty | Data Structure Used | Algorithm used | Time Complexity | Space Complexity | Additional Reading |
---|---|---|---|---|---|---|---|---|
Find the duplicate in an array of N integers | Leetcode 287. Find the Duplicate Number | Java | Medium | Array | NA | O(n) | O(1) | https://leetcode.com/problems/find-the-duplicate-number/solution/ |
Sort an array of 0’s 1’s 2’s without using extra space or sorting algo Repeat and Missing Number Merge two sorted Arrays without extra space Kadane’s Algorithm Merge Overlapping Subintervals
Set Matrix Zeros Pascal Triangle Next Permutation Inversion of Array (Using Merge Sort) Stock Buy and Sell Rotate Matrix
Excel Column Number Find n^x in log N Count trailing zeros in factorial of a number Find GCD in Log N Grid Unique Paths Go through Puzzles from GFG (Search on own)
2 Sum problem 4 Sum problem Longest Consecutive Sequence Longest Subarray with 0 sum Count number of subarrays with given XOR(this clears a lot of problems) Longest substring without repeat
Problem | Problem Statement | Solution | Difficulty | Data Structure Used | Algorithm used | Time Complexity | Space Complexity | Additional Reading |
---|---|---|---|---|---|---|---|---|
Linked List Cycle | Leetcode 141. Linked List Cycle | Java | Easy | LinkedList | Fast and Slow Pointer | O(n) | O(1) | https://leetcode.com/problems/linked-list-cycle/solution/ |
Linked List Cycle two | Leetcode 142. Linked List Cycle two | Java | Medium | LinkedList | Fast and Slow Pointer | O(n) | O(1) | NA |
Reverse a LinkedList Find middle of LinkedList Merge two sorted Linked List Remove N-th node from back of LinkedList Delete a given Node when a node is given. (0(1) solution) Add two numbers as LinkedList
Find intersection point of Y LinkedList Check if a LinkedList is palindrome or not. Reverse a LinkedList in groups. Detect a cycle and removing loop(two different questions and same concept) Flattening of a LinkedList Rotate a LinkedList Clone a Linked List with random and next pointer. .
1.Merge two sorted LinkedLists 2. Find the starting point of the loop. 3. 2 Sum 2 4. 3 sum Trapping rainwater Remove Duplicate from Sorted array Max continuous number of 1’s
####Day8: (Greedy)
N meeting in one room
Activity Selection
Greedy algorithm to find minimum number of coins
Fractional Knapsack Problem
Minimum number of platforms required for a railway
Job sequencing Problem
####Day9: (Backtracking) N queens Problem Sudoko M coloring Problem Rat in a Maze Print all Permutations of a string/array Word Break (print all ways)
####Day10: Combination sum-1 Combination sum-2 Palindrome Partioning Subset Sum-1 Subset Sum-2 K-th permutation Sequence
####Day11: (Divide and Conquer) 1/N-th root of an integer (use binary search) (square root, cube root, ..) Matrix Median Find the element that appears once in sorted array, and rest element appears twice (Binary search) Search element in a sorted and rotated array. K-th element of two sorted arrays Media of an array
####Day12: (Bits) (Optional, very rare topic in interviews, but if you have time left, someone might ask) Check if a number if a power of 2 or not in O(1) Count total set bits Divide Integers without / operator Power Set (this is very important) Find MSB in o(1) Find square of a number without using multiplication or division operators.
Day13: (Stack and Queue) Implement Stack / Implement Queue BFS Implement Stack using Queue Implement Queue using Stack Check for balanced parentheses Next Greater Element
Day14:
Next Smaller Element
LRU cache (vvvv. imp)
Largest rectangle in histogram
Sliding Window maximum
Implement Min Stack
Rotten Orange (Using BFS)
Day15: (String) Reverse Words in a String Longest Palindrome in a string Roman Number to Integer and vice versa Implement ATOI/STRSTR Longest Common Prefix Rabin Karp
Day16: (String) Prefix Function/Z-Function KMP algo Minimum characters needed to be inserted in the beginning to make it palindromic. Check for Anagrams Count and Say Compare version numbers
Day17: (Binary Tree)
Inorder Traversal (with recursion and without recursion)
Preorder Traversal (with recursion and without recursion)
Postorder Traversal (with recursion and without recursion)
LeftView Of Binary Tree
Bottom View of Binary Tree
Top View of Binary Tree
Day18: (Binary Tree) Level order Traversal / Level order traversal in spiral form Height of a Binary Tree Diameter of Binary Tree Check if Binary tree is height balanced or not LCA in Binary Tree Check if two trees are identical or not
Day 19: (Binary Tree) Maximum path sum Construct Binary Tree from inorder and preorder Construct Binary Tree from Inorder and Postorder Symmetric Binary Tree Flatten Binary Tree to LinkedList Check if Binary Tree is mirror of itself or not
Day 20: (Binary Search Tree)
Populate Next Right pointers of Tree
Search given Key in BST
Construct BST from given keys.
Check is a BT is BST or not
Find LCA of two nodes in BST
Find the inorder predecessor/successor of a given Key in BST.
Day21: (BinarySearchTree) Floor and Ceil in a BST Find K-th smallest and K-th largest element in BST (2 different Questions) Find a pair with a given sum in BST BST iterator Size of the largest BST in a Binary Tree Serialize and deserialize Binary Tree
Day22: (Mixed Questions) Binary Tree to Double Linked List Find median in a stream of running integers. K-th largest element in a stream. Distinct numbers in Window. K-th largest element in an unsorted array. Flood-fill Algorithm
Day23: (Graph) Clone a graph (Not that easy as it looks) DFS BFS Detect A cycle in Undirected Graph/Directed Graph Topo Sort Number of islands (Do in Grid and Graph both) Bipartite Check
Day24: (Graph)
SCC(using KosaRaju’s algo)
Djisktra’s Algorithm
Bellman Ford Algo
Floyd Warshall Algorithm
MST using Prim’s Algo
MST using Kruskal’s Algo
Day25: (Dynamic Programming)
Max Product Subarray
Longest Increasing Subsequence
Longest Common Subsequence
0-1 Knapsack
Edit Distance
Maximum sum increasing subsequence
Matrix Chain Multiplication
Day26: (DP) Maximum sum path in matrix, (count paths, and similar type do, also backtrack to find the maximum path) Coin change Subset Sum Rod Cutting Egg Dropping Word Break Palindrome Partitioning (MCM Variation)