Skip to content

A collection of weekly algorithm and logical thinking challenges. Each project is a small exercise designed to improve problem-solving skills, coding proficiency, logical reasoning, and consistent coding practice. Projects also focus on clean code, proper organization, and best coding practices.

License

Notifications You must be signed in to change notification settings

ZeyadGabr1/algorithms-and-data-structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algorithms and Data Structures

Algorithms Banner
GitHub stars GitHub forks GitHub issues License

A curated collection of weekly algorithm and data structure challenges. Each project is a small exercise designed to improve problem-solving skills, coding proficiency, logical reasoning, and consistent coding practice. All projects emphasize clean code, organization, and best coding practices.

Table of Contents

Installation

To get started, you'll need a programming language of your choice (Python recommended).

Clone the repository

git clone https://github.com/ZeyadGabr1/algorithms-and-data-structures.git

Navigate to the project directory

cd algorithms-and-data-structures

(Optional) Set up a Python virtual environment

python -m venv venv
source venv/bin/activate   # On Unix/macOS/linux
venv\Scripts\activate      # On Windows

Install dependencies if any

pip install -r requirements.txt
Getting Started
Browse the folders based on your interest or skill level.

Each folder contains README files, explanations, code examples, and challenges.

Repository Structure

arrays/          # Array algorithms and problems
graphs/          # Graph algorithms (DFS, BFS, shortest paths, etc.)
linked_lists/    # Linked lists implementations and challenges
searching/       # Searching algorithms (Binary Search, Hash Tables)
sorting/         # Sorting algorithms (Bubble Sort, Quick Sort, Merge Sort)
trees/           # Trees, binary trees, BST, traversals, etc.

Each folder includes:

Implementations with comments.

Example problems and solutions.

Test cases for verification.

Challenges and Exercises

Weekly challenges to sharpen your skills:

Focus Areas:

Problem-solving: Break down complex problems into manageable steps.

Coding proficiency: Implement efficient solutions with optimal time/space complexity.

Logical reasoning: Develop intuition for algorithms and data structures.

Best practices: Clean code, modular design, and version control.

Examples by folder:

Arrays: Two Sum, Rotate Array

Linked Lists: Reverse List, Detect Cycle

Trees: Inorder Traversal, Height Calculation

Graphs: Dijkstra's Algorithm, Cycle Detection

Sorting: Bubble Sort vs. Quick Sort

Searching: Binary Search on Sorted Array

Contributing

Contributions are welcome to:

Add new challenges

Improve explanations

Fix issues

Steps:

git fork
git checkout -b feature-branch
git commit -m "Add new challenge"
git push origin feature-branch

Then open a Pull Request. Please follow code best practices.

Authors

About

A collection of weekly algorithm and logical thinking challenges. Each project is a small exercise designed to improve problem-solving skills, coding proficiency, logical reasoning, and consistent coding practice. Projects also focus on clean code, proper organization, and best coding practices.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages