`1-Month DSA Revision Plan (Striver's SDE Sheet)
This document provides a 1-month structured revision plan based on Striver's SDE Sheet.
Each day is allocated specific topics and questions, with an estimated completion time of 1
hour per day.
Week 1: Basics and Easy-Medium Problems
Day 1 (Arrays & Sorting)
- Kadane's Algorithm
- Merge Intervals
- Missing Numbers
- Set Matrix Zeroes
- Sort Colors
Day 2 (Strings)
- Longest Palindromic Substring
- Anagrams
- Substring without Repeating Characters
- Roman to Integer
Day 3 (Linked List)
- Reverse Linked List
- Detect Cycle
- Merge Two Sorted Lists
- Remove Nth Node from End
Day 4 (Recursion & Backtracking)
- N-Queens
- Subset Sum
- Combination Sum
- Sudoku Solver
Day 5 (Stacks & Queues)
- Next Greater Element
- Valid Parentheses
- LRU Cache
- Sliding Window Maximum
Day 6 (Practice Tough/Tricky Questions)
- Revise any tough questions from this week.
Day 7 (Review Day)
- Quickly glance through all notes for Arrays, Strings, and Linked Lists.
Week 2: Advanced Topics
Day 8 (Binary Search)
- Search in Rotated Sorted Array
- Median of Two Sorted Arrays
- Allocate Minimum Number of Pages
Day 9 (Binary Trees)
- Inorder Traversal
-Preorder Traversal
-Postorder Traversal
- Level Order Traversal
- Lowest Common Ancestor of a Binary Tree
Day 10 (Graphs Basics)
- DFS
- BFS
- Number of Islands
Day 11 (Dynamic Programming Basics part-1)
- 0-1 Knapsack
- Longest Common Subsequence
- Longest Increasing Subsequence
Day 12 (Dynamic Programming Basics part-2)
- Coin Change (Minimum Coins)
- Subset Sum Problem
- Palindrome Partitioning
- Edit Distance
Day 13 (Practice Tough/Tricky Questions)
- Revisit Binary Search and DP questions.
Day 14 (Review Day)
- Go through Binary Trees and Graphs questions.
Week 3: Mixed Topics and Optimization
Day 15 (Arrays & Sliding Window):
Maximum Product Subarray (Self Revise)
Count number of subarrays with given xor K
Longest Substring Without Repeating Characters
Day 16 (Greedy Algorithms):
N Meetings in One Room
Job Sequencing Problem
Fractional Knapsack
Day 17 (Binary Trees Advanced):
Diameter of a Binary Tree
Flatten Binary Tree to Linked List
Right View of Binary Tree
Left View of Binary Tree
Day 18 (Dynamic Programming Intermediate):
House Robber
Word Break Problem
Maximum sum increasing subsequence
Day 19 (Graphs Intermediate):
Cycle Detection in Undirected Graph
Detect A cycle in Directed Graph
Topological Sort
Shortest Path in Weighted Graph
Day 20 (Practice Tough/Tricky Questions):
Revisit Dynamic Programming and Binary Trees questions.
Day 21 (Review Day):
Go through Graphs and Greedy questions.
Week 4: Consolidation and Final Practice
Day 22 (Heaps):
Kth Largest Element in an Array
Merge K Sorted Lists
Top K Frequent Elements
Day 23 (Advanced Graphs):
Dijkstra's Algorithm (for postive weight onyly)
Bellman Ford Algorithm (for negative and positive weight)
Minimum Spanning Tree (Prim's Algorithm)
Day 24 (Backtracking):
Print all permutations of a string/array
Rat in a Maze
Combination Sum
Day 25 (Dynamic Programming Advanced):
Egg Dropping Problem
Matrix Chain Multiplication
Palindrome Partitioning (MCM Variation)
Day 26 (Binary Search Advanced):
Split Array Largest Sum
Find Peak Element
Kth Smallest Element in a Sorted Matrix
Day 27 (Full Mock Test Day):
Solve a mix of questions from all categories under timed conditions.
Day 28 (Final Review):
Focus on weak areas, revise important notes, and reattempt tricky problems.
2nd-Month DSA Revision Plan (Striver's SDE Sheet)
Week 1: Advanced Arrays and Strings
1. Day 1 (Arrays)
Next Permutation
Reverse Pairs
Inversion of Array (Pre-req: Merge Sort)
Find the Duplicate Number
Majority Element (>n/2 times) & (>n/3 times)
2. Day 2 (Strings)
Longest Common Prefix
Implement Atoi
Integer to Roman
3. Day 3 (Linked List)
Rotate List
Copy List with Random Pointer
Flatten Multilevel Doubly Linked List
4. Day 4 (Recursion & Backtracking)
Permutations
Subsets II
Word Search
5. Day 5 (Binary Search)
Kth Element of Two Sorted Arrays
Aggressive Cows
Allocate Books
6. Day 6 (Review)
Revise Arrays and Strings.
7. Day 7 (Review)
Revise Linked Lists and Recursion problems.
Week 2: Binary Trees and Graphs
8. Day 8 (Binary Trees Basics)
Construct Binary Tree from Preorder and Inorder Traversal
Path to Given Node in Binary Tree
Check Symmetric Binary Tree
9. Day 9 (Binary Trees Advanced)
Vertical Order Traversal of Binary Tree
Serialize and Deserialize Binary Tree
10.Day 10 (Binary Search Trees)
Convert Sorted List to BST
Delete Node in BST
11.Day 11 (Graph Basics)
Detect a Cycle in Undirected Graph
BFS of Graph
12.Day 12 (Graphs Advanced)
Dijkstra's Algorithm
Prim’s Algorithm
13.Day 13 (Review)
Revise Binary Trees and Graphs.
14.Day 14 (Review)
Practice any weak areas from the week.
Week 3: Dynamic Programming and Greedy Algorithms
15.Day 15 (Dynamic Programming Basics)
Longest Palindromic Subsequence
Minimum Number of Insertions to Make a String Palindrome
16.Day 16 (Dynamic Programming Advanced)
Wildcard Matching
Word Break II
17.Day 17 (Greedy)
Partition Labels
Assign Cookies
18.Day 18 (Heap)
Top K Frequent Elements
Merge K Sorted Lists
19.Day 19 (Graphs - Advanced Algorithms)
Floyd-Warshall Algorithm
Articulation Points
20.Day 20 (Review)
Revise DP and Graph Algorithms.
Week 4: Final Preparation
21.Day 21 (Sliding Window)
Minimum Window Substring
Longest Substring with At Most K Distinct Characters
22.Day 22 (Advanced DP)
Matrix Chain Multiplication
Palindrome Partitioning II
23.Day 23 (Backtracking)
Combination Sum III
Restore IP Addresses
24.Day 24 (Binary Search)
Capacity to Ship Packages Within D Days
25.Day 25 (Mock Test)
Mixed questions from all topics under timed conditions.
26.Day 26 (Final Review)
Focus on weak areas and reattempt tricky problems.