Welcome to the DSA (Data Structures and Algorithms) repository! This project is designed as a comprehensive resource for mastering DSA concepts, preparing for coding interviews, and practicing real-world problems in multiple programming languages.
The repository is organized by programming language, then by topic, and further by difficulty level:
<Language>/
<Topic>/
<Difficulty>/
questionX.txt
answerX.<language_extension>
README.md
- Languages: Python, JavaScript, C++
- Topics: Arrays, Dynamic Programming, Graphs, Hashmaps, Linked Lists, Math, Queues, Recursion, Searching, Sorting, Stacks, Strings, Trees, etc.
- Difficulty Levels: Basic, Moderate, Advanced
As of now, the following sections are fully implemented:
-
Python
- Arrays (Basic, Moderate, Advanced)
- Dynamic Programming (Basic, Moderate, Advanced)
- Graphs (Basic, Moderate, Advanced)
- Hashmaps (Basic, Moderate, Advanced)
- Linked Lists (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Math (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Queues (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Recursion (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Searching (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Sorting (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Stacks (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Strings (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Trees (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
-
JavaScript
- Arrays (Basic, Moderate, Advanced)
- Dynamic Programming (Basic, Moderate, Advanced)
- Graphs (Basic, Moderate, Advanced)
- Hashmaps (Basic, Moderate, Advanced)
- Linked Lists (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Math (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Queues (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Recursion (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Searching (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Sorting (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Stacks (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Strings (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Trees (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
-
C++
- Arrays (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Dynamic Programming (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
Each problem includes:
- A real interview question (with source link)
- A clean, professional solution with multiple approaches
- Clear file and folder naming for easy navigation
- Modern language features and idioms (ES6+ for JavaScript)
- C++: All topics in all languages
- More languages Maybe?? rust
- Python/arrays/ — Arrays problems and solutions
- Python/dynamic_programming/ — Dynamic Programming problems and solutions
- Python/graphs/ — Graphs problems and solutions
- Python/hashmaps/ — Hashmaps problems and solutions
- Python/linked_lists/ — Linked Lists problems and solutions
- Python/math/ — Math problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Python/queues/ — Queues problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Python/recursion/ — Recursion problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Python/searching/ — Searching problems and solutions
- Python/sorting/ — Sorting problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Python/stacks/ — Stack problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Python/strings/ — String problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- Python/trees/ — Tree problems and solutions (Basic, Moderate, Advanced)
- JavaScript/arrays/ — Arrays problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- JavaScript/dynamic_programming/ — Dynamic Programming problems and solutions
- JavaScript/graphs/ — Graphs problems and solutions
- JavaScript/hashmaps/ — Hashmaps problems and solutions
- JavaScript/linked_lists/ — Linked Lists problems and solutions
- JavaScript/math/ — Math problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- JavaScript/queues/ — Queues problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- JavaScript/recursion/ — Recursion problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- JavaScript/searching/ — Searching problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- JavaScript/sorting/ — Sorting problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- JavaScript/stacks/ — Stack problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- JavaScript/strings/ — String problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- JavaScript/trees/ — Tree problems and solutions (Basic, Moderate, Advanced)
- C++/arrays/ — Arrays problems and solutions (Basic: GeeksforGeeks, Moderate/Advanced: LeetCode)
- C++/dynamic_programming/ — Dynamic Programming problems and solutions
- Navigate to your topic and difficulty of interest.
- Read the
questionX.txtfor the problem statement and source. - Review the corresponding
answerX.pyfor a clean solution. - Use the
README.mdin each folder for additional guidance.
This repository is a work in progress. Stay tuned for more updates and topics!