NeetCode/Blind 75 style DSA practice in Python with tests.
🔖 Topics: python, dsa, algorithms, data-structures, leetcode, coding-interview, neetcode, blind-75
- Python 3.8+
- pip (Python package installer)
-
Clone the repository:
git clone https://github.com/TusharQ15/dsa-practice.git cd dsa-practice -
(Recommended) Create and activate a virtual environment:
# Windows python -m venv venv .\venv\Scripts\activate # macOS/Linux python3 -m venv venv source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
dsa-practice/
├── arrays/ # Array manipulation problems
│ ├── basics/ # Warm-up problems (fundamental operations, not counted in progress)
│ └── *.py # Interview-level array problems (counted in progress)
├── strings/ # String manipulation problems
└── tests/ # Test cases for all problems
Note: Problems in
arrays/basics/are warm-up exercises and are not counted in the progress tracking. Only problems in the root ofarrays/are considered interview-level and contribute to the progress metrics.
30-Day DSA Challenge (Dec 2025 – Jan 2026)
Focused on mastering core data structures and algorithms through structured practice. Following a NeetCode/Blind 75 style curriculum with an emphasis on arrays, strings, binary search, and pattern-based problem-solving.
See PROGRESS.md for detailed progress tracking and problem solutions.
Note: More topics and problems will be added over time.
Each solution follows this consistent structure:
"""
Problem: Two Sum
Source: https://leetcode.com/problems/two-sum/
Difficulty: Easy
Approach: Use a hash map to store seen numbers and their indices.
Time Complexity: O(n)
Space Complexity: O(n)
"""
from typing import List
def two_sum(nums: List[int], target: int) -> List[int]:
passFor a complete example, see arrays/two_sum.py.
Tests are written using pytest. Each problem has a corresponding test file in the tests/ directory.
Run all tests:
pytest tests/Run tests for a specific problem:
pytest tests/test_two_sum.py| Topic | Problems | Key Patterns |
|---|---|---|
| Arrays | 9 | Two Pointers, Sliding Window, Binary Search |
| Strings | 2 | Two Pointers, Hashing |
I use these resources for practice and learning:
- LeetCode - For problem sets and practice
- NeetCode 150 - For structured problem selection
- Grokking the Coding Interview - For learning patterns
Personal notes and insights are maintained in NOTES.md.