A structured, beginner-to-advanced curriculum in Python designed to conquer LeetCode problems and technical interviews.
Welcome to the 60-Day DSA Masterclass! This repository is designed to build your problem-solving capabilities from the ground up. Whether you are starting with basic Big-O analysis or preparing for advanced Dynamic Programming and Graph algorithms, this day-by-day curriculum provides intuitive analogies, deep theoretical insights, verified code implementations, and direct mappings to LeetCode patterns.
Important
🚀 NEW: Interactive Code Player & Algorithm Visualizer You can now play and visualize the step-by-step execution of algorithms in this curriculum directly in your web browser! Open visualizer/index.html in your browser to play, pause, step forward/backward, inspect the variable watch table, monitor the call stack, and view real-time graphical animations of array, linked list, tree traversal, BFS/DFS, Dijkstra, LCS grid, and N-Queens backtracking states!
Before diving in, make sure to set up and review these core guides: 📂 Environment Setup Guide (SETUP.md) - Get Python, VS Code, and debugging configured. 📊 Master Complexity Cheat Sheet (COMPLEXITY.md) - Review time and space complexity at a glance. 🏆 LeetCode Progress Checklist (LEETCODE_PROGRESS.md) - Track your problem-solving progress with checkboxes.
Each "Day" is contained in its own directory (e.g., DAY-01 Introduction to DSA and Big-O). Inside each day's folder, you will find:
README.md: Overview of the day, goals, and real-life analogy.1_theory.md: Detailed concepts, visual diagrams, and logic.2_implementation.md: Python code templates and complexity tables.3_leetcode_patterns.md: LeetCode problems, difficulty levels, and step-by-step strategies.practice.py: Pre-written starter file to write and execute your own code.
| Day | Phase | Topic | Action |
|---|---|---|---|
| 01 | Phase 1: Complexity & Math Basics | Introduction to DSA and Big-O | Start Lesson |
| 02 | Phase 1: Complexity & Math Basics | Time and Space Complexity Analysis | Start Lesson |
| 03 | Phase 1: Complexity & Math Basics | Recursion Basics | Start Lesson |
| 04 | Phase 1: Complexity & Math Basics | Basic Mathematics for DSA | Start Lesson |
| 05 | Phase 1: Complexity & Math Basics | Bit Manipulation and Bitwise Operators | Start Lesson |
| 06 | Phase 2: Array & List Coding Patterns | Arrays and Lists Basics | Start Lesson |
| 07 | Phase 2: Array & List Coding Patterns | Arrays - Two Pointers Technique | Start Lesson |
| 08 | Phase 2: Array & List Coding Patterns | Arrays - Sliding Window Technique | Start Lesson |
| 09 | Phase 2: Array & List Coding Patterns | Arrays - Prefix Sum Technique | Start Lesson |
| 10 | Phase 2: Array & List Coding Patterns | Arrays - Subarray Problems | Start Lesson |
| 11 | Phase 2: Array & List Coding Patterns | Matrix and 2D Array Operations | Start Lesson |
| 12 | Phase 3: Searching & Sorting Algorithms | Binary Search Basics | Start Lesson |
| 13 | Phase 3: Searching & Sorting Algorithms | Binary Search on 2D Arrays | Start Lesson |
| 14 | Phase 3: Searching & Sorting Algorithms | Binary Search - Advanced Problems (Search Space) | Start Lesson |
| 15 | Phase 3: Searching & Sorting Algorithms | Sorting - Bubble, Selection, and Insertion | Start Lesson |
| 16 | Phase 3: Searching & Sorting Algorithms | Sorting - Merge Sort | Start Lesson |
| 17 | Phase 3: Searching & Sorting Algorithms | Sorting - Quick Sort | Start Lesson |
| 18 | Phase 3: Searching & Sorting Algorithms | Sorting - Heap Sort | Start Lesson |
| 19 | Phase 3: Searching & Sorting Algorithms | Sorting - Advanced Problems | Start Lesson |
| 20 | Phase 3: Searching & Sorting Algorithms | Hashing and Hash Tables | Start Lesson |
| 21 | Phase 4: Linear Data Structures | Singly Linked Lists | Start Lesson |
| 22 | Phase 4: Linear Data Structures | Doubly and Circular Linked Lists | Start Lesson |
| 23 | Phase 4: Linear Data Structures | Linked List - Advanced Problems | Start Lesson |
| 24 | Phase 4: Linear Data Structures | Stacks - Array and List Implementation | Start Lesson |
| 25 | Phase 4: Linear Data Structures | Stacks - Infix, Postfix, and Prefix | Start Lesson |
| 26 | Phase 4: Linear Data Structures | Stacks - Monotonic Stack Pattern | Start Lesson |
| 27 | Phase 4: Linear Data Structures | Queues - Linear and Circular Queues | Start Lesson |
| 28 | Phase 4: Linear Data Structures | Queues - Deque and Priority Queues | Start Lesson |
| 29 | Phase 4: Linear Data Structures | Queues - Monotonic Queue Pattern | Start Lesson |
| 30 | Phase 4: Linear Data Structures | Stack and Queue - Interview Problems | Start Lesson |
| 31 | Phase 5: Trees, Heaps & Advanced Trees | Binary Trees - Basics and Traversal | Start Lesson |
| 32 | Phase 5: Trees, Heaps & Advanced Trees | Binary Trees - View and Path Problems | Start Lesson |
| 33 | Phase 5: Trees, Heaps & Advanced Trees | Binary Search Trees (BST) - Operations | Start Lesson |
| 34 | Phase 5: Trees, Heaps & Advanced Trees | BST - Construction and Conversions | Start Lesson |
| 35 | Phase 5: Trees, Heaps & Advanced Trees | Heaps and Priority Queues | Start Lesson |
| 36 | Phase 5: Trees, Heaps & Advanced Trees | Heaps - Advanced Problems | Start Lesson |
| 37 | Phase 5: Trees, Heaps & Advanced Trees | Trie (Prefix Tree) - Implementation | Start Lesson |
| 38 | Phase 5: Trees, Heaps & Advanced Trees | Disjoint Set Union (DSU) | Start Lesson |
| 39 | Phase 5: Trees, Heaps & Advanced Trees | Segment Trees | Start Lesson |
| 40 | Phase 5: Trees, Heaps & Advanced Trees | Fenwick Tree (Binary Indexed Tree) | Start Lesson |
| 41 | Phase 6: Graph Data Structures | Graph Representations | Start Lesson |
| 42 | Phase 6: Graph Data Structures | Graph Traversal - BFS and DFS | Start Lesson |
| 43 | Phase 6: Graph Data Structures | Cycles in Graphs and Bipartiteness | Start Lesson |
| 44 | Phase 6: Graph Data Structures | Topological Sort and Kahn's Algorithm | Start Lesson |
| 45 | Phase 6: Graph Data Structures | Shortest Paths - Dijkstra's Algorithm | Start Lesson |
| 46 | Phase 6: Graph Data Structures | Shortest Paths - Bellman-Ford and Floyd-Warshall | Start Lesson |
| 47 | Phase 6: Graph Data Structures | Minimum Spanning Trees - Prim's and Kruskal's | Start Lesson |
| 48 | Phase 6: Graph Data Structures | Advanced Graph Algorithms | Start Lesson |
| 49 | Phase 7: Recursion & Backtracking | Backtracking - Permutations and Subsets | Start Lesson |
| 50 | Phase 7: Recursion & Backtracking | Backtracking - N-Queens and Sudoku | Start Lesson |
| 51 | Phase 8: Dynamic Programming & Greedy | Greedy Algorithms - Basics & Interval Scheduling | Start Lesson |
| 52 | Phase 8: Dynamic Programming & Greedy | Greedy Algorithms - Advanced | Start Lesson |
| 53 | Phase 8: Dynamic Programming & Greedy | Dynamic Programming - 1D DP | Start Lesson |
| 54 | Phase 8: Dynamic Programming & Greedy | Dynamic Programming - 2D DP and Grid Problems | Start Lesson |
| 55 | Phase 8: Dynamic Programming & Greedy | Dynamic Programming - Knapsack Problems | Start Lesson |
| 56 | Phase 8: Dynamic Programming & Greedy | Dynamic Programming - LCS and String DP | Start Lesson |
| 57 | Phase 8: Dynamic Programming & Greedy | Dynamic Programming - LIS and Partition DP | Start Lesson |
| 58 | Phase 9: Advanced String & Systems Review | String Algorithms - KMP and Rabin-Karp | Start Lesson |
| 59 | Phase 9: Advanced String & Systems Review | System Design Basics for DSA - Scaling - Memory constraints | Start Lesson |
| 60 | Phase 9: Advanced String & Systems Review | Final Revision and FAANG-MAANG Mock Interviews | Start Lesson |
To push your daily progress to GitHub, double-click the upload_to_github.bat script in the root directory. It runs:
git add .git commit -m "Auto-upload: Added daily notes and updates"git push