Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ 60-Day Data Structures & Algorithms (DSA) Masterclass

A structured, beginner-to-advanced curriculum in Python designed to conquer LeetCode problems and technical interviews.

Python Version License: MIT Status


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!

🚀 Getting Started

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.

How to Use This Repository

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:

  1. README.md: Overview of the day, goals, and real-life analogy.
  2. 1_theory.md: Detailed concepts, visual diagrams, and logic.
  3. 2_implementation.md: Python code templates and complexity tables.
  4. 3_leetcode_patterns.md: LeetCode problems, difficulty levels, and step-by-step strategies.
  5. practice.py: Pre-written starter file to write and execute your own code.

📅 Curriculum & Syllabus

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

🛠️ Local Workflows

Automatic Github Upload

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages