This repository was created as a way to deepen understanding of algorithms and data structures by solving problems from Leetcode. Each solution is documented to serve as both a reference and a personal learning log.
It is structured in a way that makes it easy to review, revisit, and expand my problem-solving knowledge over time.
All the topics organized in a logical order to study.
- Arrays
- Linked Lists
- Recursion
- Sorting
- Binary Search
- Trees
- Backtracking
- Heap
- Hashing
- Graphs
- Dynamic Programming
- Bit Manipulation
-
Start with Core Skills
- Each topic begins with fundamental problems where the goal is to learn/implement the algorithm or concept from scratch.
- Example: Writing your own sorting algorithm instead of just using
std::sort.
-
Move on to Practice Questions
- Once the concept is clear, continue with progressively harder problems.
- These problems are numbered and organized, so you can follow them like a syllabus.
-
Review and Revisit
- Each folder has a
README.mdsummarizing concepts and key takeaways.
- Each folder has a
Organized by topic (e.g., arrays, graph, dp). Each problem is in a numbered folder with a slug:
📁 arrays/
├── 001_two_sum/
│ ├── solution.cpp
│ └── README.md
This repo includes a helper script to standardize documentation:
chmod +x add_problem.sh./add_problem.shIt will prompt you for:
- Category (e.g.,
arrays/binarysearch) - Problem title
- Difficulty (optional)
It then creates a folder with:
solution.cppREADME.mdAnd updates all README files automatically.
Made with dedication by Shellyda