Welcome to the Solving SDE Sheet repository! This repository is dedicated to helping software engineers prepare for technical interviews by working through an extensive collection of problems from the SDE Sheet (Software Development Engineer).
Whether you're aiming for FAANG or just looking to sharpen your problem-solving skills, this repository will guide you step by step with well-documented solutions and explanations for each problem.
- Introduction
- SDE Sheet Overview
- Folder Structure
- How to Use This Repository
- Topics Covered
- Contributing
- Acknowledgements
The SDE Sheet is a comprehensive list of coding problems designed to cover essential data structures and algorithms concepts. This repository will serve as a companion to help you navigate through the sheet, providing clear and concise solutions to each problem.
With detailed code, comments, and approaches for various solutions, youβll gain a deeper understanding of problem-solving techniques used in top-tier coding interviews.
The SDE Sheet typically includes problems in the following categories:
- Arrays
- Strings
- Linked Lists
- Dynamic Programming
- Graphs
- Trees
- Bit Manipulation
- Maths
- Stacks & Queues
- Heaps
- Greedy Algorithms
Each problem will include:
- A clear problem statement.
- Multiple approaches (if applicable).
- Optimized solutions with time and space complexity analysis.
- Explanations for better understanding.
βββ Arrays
β βββ problem_name1.cpp
β βββ problem_name2.cpp
βββ Strings
β βββ problem_name1.py
β βββ problem_name2.py
βββ Dynamic_Programming
β βββ problem_name1.java
β βββ problem_name2.java
βββ Graphs
β βββ problem_name1.py
β βββ problem_name2.py
βββ ...
βββ README.md
- Each folder represents a topic covered in the SDE Sheet.
- Files inside the folder correspond to individual problems, named after the problem with the appropriate extension for the programming language.
-
Clone the repository:
git clone https://github.com/your-username/solving-sde-sheet.git
-
Navigate to the desired folder (e.g., Arrays, Strings):
cd solving-sde-sheet/Arrays -
Explore the solution files for each problem:
cat problem_name.cpp
-
Run the code:
- For C++:
g++ problem_name.cpp -o problem_name && ./problem_name - For Python:
python3 problem_name.py
- For C++:
-
Learn from the provided comments and explanations in the code.
We cover the following key areas:
- Arrays & Strings
- Recursion & Backtracking
- Dynamic Programming
- Searching & Sorting
- Trees & Graphs
- Linked Lists
- Heaps & Priority Queues
- Greedy Algorithms
- Stacks & Queues
- Bit Manipulation
- Number Theory
- Two Pointers and Sliding Windows
We welcome contributions! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/YourFeature). - Open a pull request.
Please make sure your code follows clean coding practices and is well-documented.
This repository would not have been possible without the numerous SDE Sheets and the hard work of many software engineers who compiled these problems. Special thanks to:
Happy coding! π If you find this repository helpful, please consider giving it a β and sharing it with others.