Complete DSA documentation
Here's a DSA Weekly Study Plan (8 Weeks) — designed to give you a solid foundation with Python. You’ll learn the most important concepts, implement code, and practice problems every week.
🗓️ 8-Week DSA Study Plan Using Python
Daily Time Commitment: 1–2 hours Ideal Platforms: LeetCode, GeeksforGeeks, NeetCode, Python Tutor, Visualgo
✅ Week 1: Arrays & Strings Concepts:
Arrays, Lists in Python String manipulation Sliding Window, Two pointers Practice:
Reverse array Move zeroes to end Kadane’s algorithm Longest substring without repeating characters Resources: LeetCode Easy Arrays, NeetCode Patterns
✅ Week 2: Hash Tables (Maps, Sets) Concepts:
Hashing basics Frequency counter Hash collisions & sets Practice:
Two Sum Group Anagrams Top K Frequent Elements Valid Anagram Python tools: dict, collections.Counter, set
✅ Week 3: Stacks & Queues Concepts:
LIFO vs FIFO Stack via list/deque Queue via deque Monotonic stack basics Practice:
Valid Parentheses Min Stack Daily Temperatures Next Greater Element Libraries: collections.deque, queue
✅ Week 4: Linked Lists Concepts:
Singly & Doubly Linked Lists Slow & fast pointer Reversal, cycle detection Practice:
Reverse Linked List Detect Cycle Merge Two Sorted Lists Remove Nth Node from End Tip: Implement linked list class manually once
✅ Week 5: Recursion & Binary Search Concepts:
Recursion tree, base & recursive cases Binary Search (standard, left/right bias) Recursion vs Iteration Practice:
Fibonacci (recursive & DP) Search in Rotated Sorted Array Kth element in sorted array Subsets / Power Set Use pythontutor.com to visualize recursion
✅ Week 6: Trees & Binary Search Trees Concepts:
Tree traversals (inorder, preorder, postorder) BST properties Height, depth, LCA Practice:
Invert Binary Tree Max Depth of Tree Validate BST Lowest Common Ancestor Tip: Visualize trees on Visualgo
✅ Week 7: Heaps & Graphs Concepts:
Min/Max Heaps (heapq) Priority Queues Graphs: BFS, DFS, adjacency list Practice:
Kth Largest Element Dijkstra’s Algorithm Clone Graph Number of Islands (DFS + BFS)
✅ Week 8: Dynamic Programming (Intro) Concepts:
Memoization vs Tabulation State definition & transition Subproblems Practice:
Climbing Stairs (DP) House Robber Longest Increasing Subsequence 0/1 Knapsack Focus on small problems — don’t rush to hard DP early on.
🎯 Final Tips Solve at least 3–5 problems per topic (start easy → medium) Read others’ solutions to learn new techniques Maintain a GitHub repo of your DSA solutions (for review + resume) Use spaced repetition for hard concepts