A beginner-friendly collection of Data Structures and Algorithms problems
Perfect for first-time contributors and Hacktoberfest 2025 participants
Getting Started • Contributing • Guidelines • Code of Conduct • License
Simple DSA is an open-source repository designed to help developers master fundamental programming concepts through hands-on practice. This project welcomes contributions in any programming language and provides a structured pathway for learning Data Structures and Algorithms.
- 📚 Build a comprehensive, multi-language DSA problem collection
- 🌍 Foster an inclusive learning community for developers of all levels
- 🤝 Provide meaningful contribution opportunities for Hacktoberfest
- 🎓 Bridge the gap between theory and practical implementation
- 🏆 Maintain high code quality standards and best practices
|
Multi-Language Solve in your preferred language |
Educational Learn by doing |
Community Driven Collaborate and grow |
Recognition Get credited for contributions |
| 📈 Metric | 🔢 Count |
|---|---|
| Total Problems | 200+ |
| Categories | 10+ |
| Supported Languages | Any |
| Contributors | See contributors.json |
Our problems are organized into comprehensive categories covering all major DSA topics: [PROBLEM_LIST.md]
📁 Categories
│
├── 🟢 Basic Programming & Arithmetic
│ └── Fundamental operations and syntax
│
├── 🟡 Control Flow & Decision Making
│ └── Conditionals and logical operations
│
├── 🟠 Loops, Functions & Recursion
│ └── Iteration, function design, and recursive thinking
│
├── 🔵 Arrays & Matrices
│ └── Array manipulation and matrix operations
│
├── 🟣 Strings & Pattern Matching
│ └── String processing and algorithms
│
├── 🔴 Searching & Sorting
│ └── Classic search and sort algorithms
│
├── 🟤 Linked Lists
│ └── Single, double, and circular linked lists
│
├── ⚫ Trees & Graphs
│ └── Binary trees, BST, graphs, and traversals
│
├── 🟥 Dynamic Programming
│ └── Memoization and tabulation techniques
│
└── 🟦 Advanced Data Structures
└── Heaps, tries, segment trees, and more
📝 Note: Complete problem descriptions with LeetCode integration are available in PROBLEM_LIST.md
# 1. Fork and star this repository ⭐
# 2. Clone your fork
git clone https://github.com/noodles-sed/Simple-DSA.git
# 3. Navigate to the directory
cd Simple-DSA
# 4. Check available problems
# Browse PROBLEM_LIST.md to select a problem
# 5. Create an issue for the problem you want to solve
# Wait for assignment before starting work- Git installed (Download)
- GitHub account (Sign up)
- Code editor (VS Code, IntelliJ, etc.)
- Language compiler/interpreter
- [Optional] Hacktoberfest registration (Register)
graph LR
A[Browse PROBLEM_LIST.md] --> B[Create Issue]
B --> C[Wait for Assignment]
C --> D[Create Branch]
D --> E[Write Solution]
E --> F[Test Code]
F --> G[Update contributors.json]
G --> H[Commit Changes]
H --> I[Push to Fork]
I --> J[Create Pull Request]
J --> K[Code Review]
K --> L[Merge]
click on following steps
1️⃣ Browse Available Problems
- Check PROBLEM_LIST.md for the complete problem catalog
- Problems are organized by difficulty and topic
- Each problem includes description, constraints, and examples
- LeetCode problems are linked for reference
2️⃣ Create an Issue
- Go to the Issues tab
- Click "New Issue" and select "Solution Submission"
- Fill in the template:
Problem: Q[number] - [Problem Name] Language: [Your chosen language] Description: Brief description of your approach - Wait for a maintainer to assign the issue to you
- Do not start coding until assigned!
3️⃣ Set Up Your Development Environment
Only after assignment:
# Create and switch to a new branch
git checkout -b add-solution-q15-python
# Ensure you're on the latest version
git pull origin main4️⃣ Write Your Solution
- Follow the file structure guidelines
- Use proper naming conventions:
q[number]_description.ext - Add meaningful comments explaining your approach
- Include time and space complexity analysis
Example Structure:
Language/
└── q15_leap_year.py
5️⃣ Update contributors.json
Add your information to the contributors.json file:
{
"name": "Your Name",
"github": "your-username",
"contributions": ["Q15 - Python"],
"profile_url": "https://github.com/your-username"
}6️⃣ Commit and Push
# Stage your changes
git add .
# Commit with a meaningful message
git commit -m "feat: Add solution for Q15 in Python"
# Push to your fork
git push origin add-solution-q15-python7️⃣ Create a Pull Request
- Go to your fork on GitHub
- Click "Compare & pull request"
- Fill out the PR template completely
- Link the issue you created using "Closes #issue-number"
- Wait for review and feedback
💡 Pro Tip: Read our CONTRIBUTING.md for detailed guidelines!
- ✔️ Solutions for assigned issues only
- ✔️ Well-tested, working solutions
- ✔️ Solutions in any programming language
- ✔️ Clean, documented code with comments
- ✔️ One solution per pull request
- ✔️ Meaningful variable and function names
- ✖️ PRs without a linked issue
- ✖️ Solutions for unassigned problems
- ✖️ Plagiarized or copied code
- ✖️ Duplicate solutions in the same language
- ✖️ Untested or broken code
- ✖️ PRs without proper documentation
- ✖️ Spam or low-effort contributions
All contributions must follow our quality standards:
- Issue Requirement: Must have an assigned issue before PR
- Code Quality: Clean, readable, and well-structured
- Documentation: Include comments and complexity analysis
- Testing: Thoroughly tested with multiple test cases
- Naming: Follow language-specific conventions
- Structure: Adhere to repository organization
See CONTRIBUTING.md for complete guidelines.
Simple-DSA/
├── 📄 README.md
├── 📄 PROBLEM_LIST.md
├── 📄 LICENSE
├── 📄 CODE_OF_CONDUCT.md
├── 📄 CONTRIBUTING.md
├── 📄 SECURITY.md
├── 📄 REPOSITORY_STRUCTURE.md
├── 📊 contributors.json
│
├── 📁 .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── feature_request.md
│ │ └── solution_submission.md
│ └── pull_request_template.md
│
├── 📁 C/
├── 📁 C++/
├── 📁 Java/
├── 📁 Python/
├── 📁 JavaScript/
└── 📁 [Your Language]/
See REPOSITORY_STRUCTURE.md for detailed organization.
We are committed to providing a welcoming and inclusive environment. Please read our Code of Conduct before participating.
- 📖 Read the Contributing Guidelines
- 🐛 Report bugs using issue templates
- 💡 Suggest features via feature requests
- 💬 Join discussions in the Issues section
All contributors are recognized in:
- 📝 contributors.json
- 🏆 Repository contributors page
- 🌟 Special mentions for outstanding contributions
Check your Hacktoberfest progress:
- Hacktoberfest Dashboard: hacktoberfest.com/profile
- Valid Contributions: PRs must be merged or approved
- Spam Policy: Low-quality PRs will be marked as invalid
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License - Copyright (c) 2025 Simple DSA Contributors
Special thanks to:
- 🎃 Hacktoberfest for promoting open-source contributions
- 👥 All Contributors for their valuable solutions
- 🌍 Open Source Community for continuous support
- 📚 LeetCode for problem inspiration and references
- 🎯 Striver, NeetCode, and other educators for curated DSA sheets (Available at PROBLEM_LIST.md
Fork this Repository | View Problems | Create Issue
If you find this project helpful, please consider:
⭐ Starring this repository | 🍴 Forking for your contributions | 📢 Sharing with others
Project Admin - noodles-sed
This Repository is Documented & Structurized with ❤️ by Ayush Hardeniya
Happy Coding! 💻✨

