- Overview
- Languages
- Problem Categories
- Directory Structure
- Getting Started
- How to Contribute
- Learning Resources
- License
This repository contains comprehensive code examples for data structures, algorithms, LeetCode and GeeksforGeeks problems commonly asked in top product company interviews. Solutions are provided in multiple languages including Java, Python, Golang, and JavaScript.
The goal is to create a centralized, well-documented resource that helps developers prepare for technical interviews at leading tech companies.
Solutions are implemented in the following languages:
Language | Description |
---|---|
Object-oriented solutions with detailed comments | |
Clean, Pythonic implementations with type hints | |
Efficient Go implementations | |
Modern JavaScript solutions with ES6+ features |
Category | Description | Count |
---|---|---|
Data Structures | Arrays, Linked Lists, Trees, Graphs, Hash Tables, Stacks, Queues, Heaps | 50+ |
Algorithms | Sorting, Searching, Dynamic Programming, Greedy, Divide & Conquer | 40+ |
LeetCode | Solutions to popular LeetCode problems with difficulty tags | 100+ |
GeeksforGeeks | Solutions to important GeeksforGeeks problems | 75+ |
.
├── data-structures/
│ ├── arrays/
│ ├── linked-lists/
│ ├── trees/
│ ├── graphs/
│ ├── hash-tables/
│ └── ...
├── algorithms/
│ ├── sorting/
│ ├── searching/
│ ├── dynamic-programming/
│ └── ...
├── leetcode/
│ ├── easy/
│ ├── medium/
│ └── hard/
├── geeksforgeeks/
└── language-specific/
├── java/
├── python/
├── golang/
└── javascript/
-
Clone the repository:
git clone https://github.com/spawn08/ds-algo-interview.git cd ds-algo-interview-java
-
Navigate to the problem category you're interested in:
cd data-structures/arrays
-
Each problem includes:
- Problem statement
- Multiple language implementations
- Time and space complexity analysis
- Test cases
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Please ensure your code:
- Includes detailed comments
- Has proper time and space complexity analysis
- Passes all existing tests
- Follows the project coding style
This repository is available under the MIT License. See the LICENSE file for more info.
If you found this repository helpful, please consider giving it a ⭐!