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.