This repository documents my journey learning Data Structures and Algorithms (DSA) and practicing problem-solving, primarily using platforms like LeetCode. The goal is to build a strong foundation in core computer science concepts and improve programming proficiency across multiple languages.
- Learn & Implement: Understand fundamental Data Structures (Linked Lists, Trees, Hash Tables, etc.) and Algorithms (Sorting, Searching, Graph Traversals, DP, etc.) by implementing them from scratch.
- Problem Solving: Solve coding challenges from platforms like LeetCode to apply DSA knowledge and develop problem-solving patterns.
- Multi-Language Exploration: Implement solutions in Python initially, with the intention of revisiting problems and implementing them in other languages (like C++, Java, etc.) to understand language-specific nuances and trade-offs.
- Personal Reference: Serve as a personal knowledge base and code library for future reference.
The repository is organized to keep concepts, implementations, and practice problems distinct and easy to navigate, especially with multiple languages in mind.
dsa-multi-language/
├── .gitignore # Standard gitignore for multiple languages
├── README.md # This file
│
├── concepts/ # Language-agnostic theory & notes (optional)
│ ├── big_o.md
│ └── ...
│
├── data_structures/ # Core DS implementations
│ ├── linked_list/
│ │ ├── notes.md # Concept notes
│ │ ├── python/
│ │ │ └── linked_list.py
│ │ └── cpp/ # Example for C++ later
│ │ └── linked_list.cpp
│ └── ...
│
├── algorithms/ # Core Algorithm implementations
│ ├── sorting/
│ │ ├── notes.md
│ │ ├── python/
│ │ │ └── merge_sort.py
│ │ └── ...
│ └── ...
│
└── practice_problems/ # <<< LeetCode-style problems
├── leetcode/
│ ├── 001_two_sum/ # <<< Directory per problem
│ │ ├── README.md # Problem description, examples, constraints
│ │ ├── python/ # <<< Sub-directory per language
│ │ │ └── solution.py # Contains Solution class + test block
│ │ ├── cpp/ # Example for C++ later
│ │ │ └── solution.cpp
│ │ └── ... # Other languages as added
│ │
│ └── ... (other LeetCode problems)
│
└── hackerrank/ # If using other platforms
└── ...