This repository contains curated solutions to a subset of common algorithmic problems, primarily based on the LeetCode 75 study plan.
The purpose of this repository is to maintain algorithmic fluency and document common problem-solving patterns that frequently appear in technical interviews and real-world engineering tasks.
This is not intended as a competitive programming showcase, but rather as a structured reference for fundamental data structures and algorithms.
The problems cover a range of foundational algorithmic topics, including:
- Arrays and strings
- Two pointers
- Sliding window
- Prefix sums
- Hash-based data structures
- Stack and queue
- Basic graph and traversal patterns
Each solution focuses on:
- clarity and readability
- explicit time and space complexity
- well-known algorithmic patterns rather than clever tricks
.
├── pyproject.toml # Project configuration
├── src/
│ ├── array_string/ # Array and string manipulation patterns
│ ├── hashmap_set/ # Hash map and set based problems
│ ├── prefix_sum/ # Prefix sum techniques
│ ├── sliding_window/ # Sliding window pattern
│ ├── two_pointers/ # Two pointers pattern
│ ├── stack/ # Stack-based problems
│ └── queue/ # Queue-based problems
│
│ # Each submodule follows a consistent structure:
│ # <problem_name>/
│ # ├── __init__.py
│ # └── solution.py
│
└── tests/ # Tests for all problems
- Clean, readable Python code
- Emphasis on algorithmic patterns
- Avoidance of overly compact or non-obvious solutions
- Explicit handling of edge cases
- Python
This repository complements my primary work in machine learning and LLM-based systems, where a solid understanding of algorithms and data structures remains essential for building reliable and scalable production systems.