Dsa 5 Months Target
Dsa 5 Months Target
Monthly Breakdown::
Topics:
Time and space complexity
Basic concepts and importance
Problems:
Big O notation examples
Analyzing algorithm complexities
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Topics:
Arrays, strings, linked lists, stacks, queues
Practice:
Solve a mix of problems from these topics to reinforce understanding
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
Activities:
Simulate coding interviews
Participate in coding competitions
Focus on improving speed and accuracy
Activities:
Additional Tips
### Hashing
Combining Resources:::
Concept Learning:
Watch tutorials on YouTube channels like FreeCodeCamp and mycodeschool for visual
explanations.
Practice Problems:
Supplementary Learning:
Take free courses on Coursera and edX to deepen your understanding of complex
topics.
Mock Interviews: