0% found this document useful (0 votes)
132 views8 pages

Dsa 5 Months Target

Uploaded by

Sandeep Nayal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
132 views8 pages

Dsa 5 Months Target

Uploaded by

Sandeep Nayal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 8

DSA 5 MONTHS TARGET----

Monthly Breakdown::

Month 1: Introduction and Basics--

Week 1: Introduction to DSA

Topics:
Time and space complexity
Basic concepts and importance
Problems:
Big O notation examples
Analyzing algorithm complexities

Week 2: Arrays and Strings

Topics:
Basic operations
Two-pointer technique
Sliding window technique
Problems:
Two Sum (LeetCode 1)
Best Time to Buy and Sell Stock (LeetCode 121)
Longest Substring Without Repeating Characters (LeetCode 3)
Longest Palindromic Substring (LeetCode 5)

Week 3: Linked Lists

Topics:
Types of linked lists (singly, doubly, circular)
Operations (insertion, deletion, traversal)
Problems:
Reverse Linked List (LeetCode 206)
Merge Two Sorted Lists (LeetCode 21)
Linked List Cycle (LeetCode 141)
Intersection of Two Linked Lists (LeetCode 160)

Week 4: Stacks and Queues

Topics:
Stack and queue operations
Applications of stacks and queues
Problems:
Valid Parentheses (LeetCode 20)
Min Stack (LeetCode 155)
Implement Queue using Stacks (LeetCode 232)
Sliding Window Maximum (LeetCode 239)

Month 2: Trees and Graphs

Week 5: Trees (Part 1)

Topics:
Binary Trees and Binary Search Trees (BST)
Tree traversals (in-order, pre-order, post-order)
Problems:
Binary Tree Inorder Traversal (LeetCode 94)
Validate Binary Search Tree (LeetCode 98)
Symmetric Tree (LeetCode 101)
Maximum Depth of Binary Tree (LeetCode 104)

Week 6: Trees (Part 2)

Topics:
AVL Trees and operations
Common tree problems
Problems:
Same Tree (LeetCode 100)
Lowest Common Ancestor of a Binary Search Tree (LeetCode 235)
Serialize and Deserialize Binary Tree (LeetCode 297)
Subtree of Another Tree (LeetCode 572)

Week 7: Graphs (Part 1)

Topics:
Representation of graphs
Graph traversal algorithms (BFS, DFS)
Problems:
Number of Islands (LeetCode 200)
Clone Graph (LeetCode 133)
Course Schedule (LeetCode 207)
Course Schedule II (LeetCode 210)

Week 8: Graphs (Part 2)

Topics:
Shortest path algorithms (Dijkstra, Floyd-Warshall)
Minimum Spanning Tree (Kruskal, Prim)
Problems:
Network Delay Time (LeetCode 743)
Cheapest Flights Within K Stops (LeetCode 787)
Reconstruct Itinerary (LeetCode 332)
Alien Dictionary (LeetCode 269)

Month 3: Hashing, Sorting, and Searching

Week 9: Hashing

Topics:
Hash tables
Collision resolution techniques
Problems:
Valid Anagram (LeetCode 242)
Intersection of Two Arrays (LeetCode 349)
Group Anagrams (LeetCode 49)
Subarray Sum Equals K (LeetCode 560)

Week 10: Sorting Algorithms (Part 1)

Topics:
Bubble sort, Selection sort, Insertion sort
Merge sort and Quick sort
Problems:
Merge Intervals (LeetCode 56)
Insert Interval (LeetCode 57)
Sort Colors (LeetCode 75)
Kth Largest Element in an Array (LeetCode 215)

Week 11: Sorting Algorithms (Part 2)

Topics:
Heap sort, Counting sort, Radix sort
Complexities and optimizations
Problems:
Largest Number (LeetCode 179)
H-Index (LeetCode 274)
Wiggle Sort II (LeetCode 324)
Median of Two Sorted Arrays (LeetCode 4)

Week 12: Searching Algorithms

Topics:
Linear search
Binary search and its variations
Problems:
Search in Rotated Sorted Array (LeetCode 33)
Find First and Last Position of Element in Sorted Array (LeetCode 34)
Find Peak Element (LeetCode 162)
Search a 2D Matrix (LeetCode 74)

Month 4: Dynamic Programming and Advanced Topics

Week 13: Dynamic Programming (Part 1)

Topics:
Introduction to DP
Memoization and tabulation techniques
Problems:
Climbing Stairs (LeetCode 70)
House Robber (LeetCode 198)
Coin Change (LeetCode 322)
Longest Increasing Subsequence (LeetCode 300)

Week 14: Dynamic Programming (Part 2)

Topics:
Common DP problems
Practice problems
Problems:
Longest Common Subsequence (LeetCode 1143)
Word Break (LeetCode 139)
Partition Equal Subset Sum (LeetCode 416)
Edit Distance (LeetCode 72)

Week 15: Advanced Data Structures (Part 1)

Topics:
Segment trees
Fenwick trees
Problems:
Range Sum Query - Immutable (LeetCode 303)
Range Sum Query 2D - Immutable (LeetCode 304)
Range Sum Query - Mutable (LeetCode 307)
Range Sum Query 2D - Mutable (LeetCode 308)
Week 16: Advanced Data Structures (Part 2)

Topics:
Tries and their applications
Suffix trees
Problems:
Implement Trie (Prefix Tree) (LeetCode 208)
Add and Search Word - Data structure design (LeetCode 211)
Replace Words (LeetCode 648)
Word Search II (LeetCode 212)

Month 5: Advanced Graph Algorithms and Review

Week 17: Advanced Graph Algorithms (Part 1)

Topics:
Advanced traversal techniques
Graph coloring, topological sorting
Problems:
Graph Valid Tree (LeetCode 261)
Critical Connections in a Network (LeetCode 1192)
Redundant Connection (LeetCode 684)
Path with Maximum Probability (LeetCode 1514)

Week 18: Advanced Graph Algorithms (Part 2)

Topics:
Network flow
Eulerian and Hamiltonian paths
Problems:
Maximal Network Rank (LeetCode 1615)
Find the Town Judge (LeetCode 997)
Smallest String With Swaps (LeetCode 1202)
Optimize Water Distribution in a Village (LeetCode 1168)

Week 19: NP-Complete Problems

Topics:
Introduction to NP-Completeness
Common NP-Complete problems
Problems:
Traveling Salesman Problem (concept)
Knapsack Problem (LeetCode 494)
Subset Sum Problem (LeetCode 416)
Vertex Cover Problem (concept)

Week 20: Review of Core Topics

Topics:
Arrays, strings, linked lists, stacks, queues
Practice:
Solve a mix of problems from these topics to reinforce understanding

Week 21: Review of Trees and Graphs

Topics:
Key concepts and algorithms
Practice:
Solve a mix of problems from these topics to reinforce understanding
Week 22: Review of Dynamic Programming

Topics:
Key concepts and algorithms
Practice:
Solve a mix of problems from these topics to reinforce understanding

Week 23: Mock Interviews and Competitive Programming

Activities:
Simulate coding interviews
Participate in coding competitions
Focus on improving speed and accuracy

Week 24: Final Review and Preparation

Activities:

Revise key concepts


Solve a mix of problems from all topics
Conduct final mock interviews

Additional Tips

Consistent Practice: Maintain a regular study schedule, dedicating 2 hours daily.


Deep Understanding: Focus on understanding the underlying concepts and solutions,
not just memorizing.
Code Optimization: Learn to optimize your solutions for better performance.
Mock Interviews: Regularly practice mock interviews to get comfortable with the
format and pressure.

TOPIC WISE PROBLEMS TO SOLVE:::

### Arrays and Strings

1. **Two Sum** (LeetCode 1)


2. **Best Time to Buy and Sell Stock** (LeetCode 121)
3. **Contains Duplicate** (LeetCode 217)
4. **Product of Array Except Self** (LeetCode 238)
5. **Maximum Subarray** (LeetCode 53)
6. **Merge Intervals** (LeetCode 56)
7. **Longest Substring Without Repeating Characters** (LeetCode 3)
8. **Longest Palindromic Substring** (LeetCode 5)
9. **String to Integer (atoi)** (LeetCode 8)
10. **Group Anagrams** (LeetCode 49)
11. **Valid Parentheses** (LeetCode 20)
12. **Minimum Window Substring** (LeetCode 76)
13. **Substring with Concatenation of All Words** (LeetCode 30)
14. **Longest Common Prefix** (LeetCode 14)
15. **4Sum** (LeetCode 18)

### Linked Lists

1. **Reverse Linked List** (LeetCode 206)


2. **Merge Two Sorted Lists** (LeetCode 21)
3. **Remove Nth Node From End of List** (LeetCode 19)
4. **Palindrome Linked List** (LeetCode 234)
5. **Linked List Cycle** (LeetCode 141)
6. **Intersection of Two Linked Lists** (LeetCode 160)
7. **Copy List with Random Pointer** (LeetCode 138)
8. **Add Two Numbers** (LeetCode 2)
9. **Remove Duplicates from Sorted List** (LeetCode 83)
10. **Reorder List** (LeetCode 143)

### Stacks and Queues

1. **Valid Parentheses** (LeetCode 20)


2. **Evaluate Reverse Polish Notation** (LeetCode 150)
3. **Min Stack** (LeetCode 155)
4. **Implement Queue using Stacks** (LeetCode 232)
5. **Implement Stack using Queues** (LeetCode 225)
6. **Design Circular Queue** (LeetCode 622)
7. **Design Circular Deque** (LeetCode 641)
8. **Daily Temperatures** (LeetCode 739)
9. **Asteroid Collision** (LeetCode 735)
10. **Sliding Window Maximum** (LeetCode 239)

### Trees and Graphs

1. **Binary Tree Inorder Traversal** (LeetCode 94)


2. **Validate Binary Search Tree** (LeetCode 98)
3. **Symmetric Tree** (LeetCode 101)
4. **Binary Tree Level Order Traversal** (LeetCode 102)
5. **Convert Sorted Array to Binary Search Tree** (LeetCode 108)
6. **Maximum Depth of Binary Tree** (LeetCode 104)
7. **Same Tree** (LeetCode 100)
8. **Lowest Common Ancestor of a Binary Search Tree** (LeetCode 235)
9. **Subtree of Another Tree** (LeetCode 572)
10. **Serialize and Deserialize Binary Tree** (LeetCode 297)
11. **Course Schedule** (LeetCode 207)
12. **Number of Islands** (LeetCode 200)
13. **Clone Graph** (LeetCode 133)
14. **Word Ladder** (LeetCode 127)
15. **Graph Valid Tree** (LeetCode 261)

### Heaps and Priority Queues

1. **Kth Largest Element in an Array** (LeetCode 215)


2. **Top K Frequent Elements** (LeetCode 347)
3. **Find Median from Data Stream** (LeetCode 295)
4. **Merge k Sorted Lists** (LeetCode 23)
5. **Sliding Window Median** (LeetCode 480)
6. **Top K Frequent Words** (LeetCode 692)
7. **Trapping Rain Water II** (LeetCode 407)
8. **Find K Pairs with Smallest Sums** (LeetCode 373)
9. **Find K Closest Elements** (LeetCode 658)
10. **Minimum Cost to Connect Sticks** (LeetCode 1167)

### Hashing

1. **Two Sum** (LeetCode 1)


2. **Valid Anagram** (LeetCode 242)
3. **Intersection of Two Arrays** (LeetCode 349)
4. **Contains Duplicate** (LeetCode 217)
5. **Group Anagrams** (LeetCode 49)
6. **Top K Frequent Elements** (LeetCode 347)
7. **Minimum Window Substring** (LeetCode 76)
8. **4Sum II** (LeetCode 454)
9. **Longest Consecutive Sequence** (LeetCode 128)
10. **Subarray Sum Equals K** (LeetCode 560)

### Sorting and Searching

1. **Merge Intervals** (LeetCode 56)


2. **Insert Interval** (LeetCode 57)
3. **Sort Colors** (LeetCode 75)
4. **Search in Rotated Sorted Array** (LeetCode 33)
5. **Find First and Last Position of Element in Sorted Array** (LeetCode 34)
6. **Median of Two Sorted Arrays** (LeetCode 4)
7. **Kth Largest Element in an Array** (LeetCode 215)
8. **Largest Number** (LeetCode 179)
9. **H-Index** (LeetCode 274)
10. **Wiggle Sort II** (LeetCode 324)

### Dynamic Programming

1. **Climbing Stairs** (LeetCode 70)


2. **House Robber** (LeetCode 198)
3. **House Robber II** (LeetCode 213)
4. **Longest Increasing Subsequence** (LeetCode 300)
5. **Coin Change** (LeetCode 322)
6. **Longest Common Subsequence** (LeetCode 1143)
7. **Word Break** (LeetCode 139)
8. **Partition Equal Subset Sum** (LeetCode 416)
9. **Unique Paths** (LeetCode 62)
10. **Edit Distance** (LeetCode 72)
11. **Maximum Subarray** (LeetCode 53)
12. **Best Time to Buy and Sell Stock** (LeetCode 121)
13. **Maximum Product Subarray** (LeetCode 152)
14. **Minimum Path Sum** (LeetCode 64)
15. **Palindromic Substrings** (LeetCode 647)

### Advanced Data Structures

1. **Implement Trie (Prefix Tree)** (LeetCode 208)


2. **Add and Search Word - Data structure design** (LeetCode 211)
3. **Design Add and Search Words Data Structure** (LeetCode 211)
4. **Design Phone Directory** (LeetCode 379)
5. **Design Skiplist** (LeetCode 1206)
6. **LFU Cache** (LeetCode 460)
7. **LRU Cache** (LeetCode 146)
8. **Design HashMap** (LeetCode 706)
9. **Design HashSet** (LeetCode 705)
10. **All O`one Data Structure** (LeetCode 432)

### Graph Algorithms

1. **Course Schedule** (LeetCode 207)


2. **Course Schedule II** (LeetCode 210)
3. **Number of Islands** (LeetCode 200)
4. **Clone Graph** (LeetCode 133)
5. **Word Ladder** (LeetCode 127)
6. **Graph Valid Tree** (LeetCode 261)
7. **Reconstruct Itinerary** (LeetCode 332)
8. **Network Delay Time** (LeetCode 743)
9. **Minimum Height Trees** (LeetCode 310)
10. **Alien Dictionary** (LeetCode 269)
11. **Redundant Connection** (LeetCode 684)
12. **Cheapest Flights Within K Stops** (LeetCode 787)
13. **Find the Town Judge** (LeetCode 997)
14. **Critical Connections in a Network** (LeetCode 1192)
15. **Path with Maximum Probability** (LeetCode 1514)

### Backtracking and Recursion

1. **Permutations** (LeetCode 46)


2. **Subsets** (LeetCode 78)
3. **Combination Sum** (LeetCode 39)
4. **Letter Combinations of a Phone Number** (LeetCode 17)
5. **Generate Parentheses** (LeetCode 22)
6. **Word Search** (LeetCode 79)
7. **Sudoku Solver** (LeetCode 37)
8. **Palindrome Partitioning** (LeetCode 131)
9. **Combinations** (LeetCode 77)
10. **N-Queens** (LeetCode 51)
11. **Combination Sum II** (LeetCode 40)
12. **Permutations II** (LeetCode 47)
13. **Restore IP Addresses**

Combining Resources:::

To get the most out of these platforms, here's a suggested approach:

Concept Learning:

Start with GeeksforGeeks for detailed explanations and initial understanding.

Watch tutorials on YouTube channels like FreeCodeCamp and mycodeschool for visual
explanations.
Practice Problems:

Solve problems on LeetCode and HackerRank NeetCode

Use InterviewBit for structured practice paths.

Supplementary Learning:

Take free courses on Coursera and edX to deepen your understanding of complex
topics.

Mock Interviews:

Use LeetCode, CodeSignal, and InterviewBit to simulate real coding interviews.

You might also like