Skip to content

Latest commit

 

History

History
508 lines (379 loc) · 14.1 KB

File metadata and controls

508 lines (379 loc) · 14.1 KB

🚀 Simple DSA - Hacktoberfest 2025

Hacktoberfest 2025 Contributions Welcome License: MIT PRs Welcome First Timers Friendly GitHub Stars GitHub Forks

A beginner-friendly collection of Data Structures and Algorithms problems

Perfect for first-time contributors and Hacktoberfest 2025 participants

Getting StartedContributingGuidelinesCode of ConductLicense


📖 About

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.

🎯 Project Vision

  • 📚 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

✨ Why This Repository?


Multi-Language
Solve in your preferred language

Educational
Learn by doing

Community Driven
Collaborate and grow

Recognition
Get credited for contributions

📊 Project Statistics

📈 Metric 🔢 Count
Total Problems 200+
Categories 10+
Supported Languages Any
Contributors See contributors.json

🗂️ Problem Categories

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


🚀 Getting Started

Quick Setup

# 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

📋 Prerequisites

  • Git installed (Download)
  • GitHub account (Sign up)
  • Code editor (VS Code, IntelliJ, etc.)
  • Language compiler/interpreter
  • [Optional] Hacktoberfest registration (Register)

💻 How to Contribute

Contribution Workflow

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]
Loading

Step-by-Step Guide

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

⚠️ IMPORTANT: You must create an issue and wait for assignment before starting work!

  • 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 main
4️⃣ 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-python
7️⃣ 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!


📜 Contribution Guidelines

✅ We Accept

  • ✔️ 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

❌ We Reject

  • ✖️ 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

📏 Code Standards

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.


🏗️ Repository Structure

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.


🤝 Community

Code of Conduct

We are committed to providing a welcoming and inclusive environment. Please read our Code of Conduct before participating.

Getting Help

Recognition

All contributors are recognized in:

  • 📝 contributors.json
  • 🏆 Repository contributors page
  • 🌟 Special mentions for outstanding contributions

📊 Progress Tracking

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

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License - Copyright (c) 2025 Simple DSA Contributors

🌟 Star History

Star History Chart


👥 Project Leadership & Architecture


🏗️ Core Project Architect

Ayush Sharma

@ayushHardeniya

Repository Maintener & Curator

LinkedIn GitHub Twitter

📋 View Contributions
📐 Documentation & Design
✅ Complete repository structure & organization
✅ Comprehensive problem catalog (200+ problems)
✅ LeetCode integration & curated sheets mapping
✅ Redesigned README.md with modern layout
✅ Complete PROBLEM_LIST.md documentation
✅ Contribution guidelines & workflow templates
✅ File naming conventions & repository standards
✅ Community management & issue templates
 
💻 Code Contributions
✅ Multiple C++ solutions (1838.cpp, 118.cpp)
✅ Advanced problems (Minimize_the_heights.cpp)
✅ LeetCode problems (119.cpp and many more)
✅ Well-documented code with complexity analysis

👨‍💼 Project Admin

Noodles Sed

@noodles-sed

Repository Maintainer & Admin

GitHub

📋 View Responsibilities
✅ Repository administration & management
✅ Pull request reviews & approvals
✅ Issue triage & assignment
✅ Community moderation & support
✅ Maintaining code quality standards
✅ Project oversight & coordination
✅ Contributor engagement & recognition

🙏 Acknowledgments

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

🚀 Ready to Contribute?

Fork this Repository | View Problems | Create Issue


Show Your Support

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! 💻✨