This repository contains algorithm implementations written as part of learning and revising core problem-solving techniques.
The focus here is on understanding the logic behind algorithms, not just producing correct output.
Most solutions are written step by step, keeping the thought process visible rather than compressed.
- Standard algorithms and data structures
- Dynamic Programming (with states made explicit)
- Greedy and recursive approaches
- Graph algorithms and classic problems
- Multiple approaches where useful (brute force to optimized)
The code is structured to be readable and revisitable, especially during revision.
- Primarily C / C++
- Standard libraries only
- No external dependencies
This repository serves as:
- A personal reference for algorithms
- A revision aid for exams, interviews, and practice
- A place to experiment with different approaches to the same problem
It is not meant to be a competitive programming template library.
- Solutions may be longer than necessary for clarity
- Variable names and comments prioritize understanding
- Optimization is secondary to correctness and explanation