This repository is a personal collection of my notes, implementations, and solutions for various Data Structures and Algorithms topics. I'm sharing it to track my progress and hopefully help you on your learning journey too.
This repository is organized by topic. Here's a guide to what you'll find in each folder:
| Folder | Description |
|---|---|
| Core Concepts | |
| 1. Dynamic Programming | Solutions to DP problems, categorized by pattern. |
| 2. Bit manipulation | Practice problems and notes on bit manipulation techniques. |
| 3. Graphs | Implementations of graph algorithms and solutions to graph problems. |
| Heap | Code and notes related to heaps. |
| Linkedlist | Implementations of singly and doubly linked lists, and solutions. |
| Sliding Window | Notes and solutions for sliding window problems. |
| sorting-algorithms | Implementations of various sorting algorithms. |
| Trees | Code for tree traversals, construction, and various tree problems. |
| Practice & Problems | |
| 0. Leetcode Contests | Solutions from bi-weekly LeetCode contests. |
| 4. Striver sheet | Problems from the Striver SDE Sheet. |
| Leetcode Notes | Topic-wise notes for LeetCode problems. |
| Unorganised Leetcode Daily | Solutions to daily LeetCode problems. |
| Miscellaneous | |
| 0. Algorithms | Implementations of various other algorithms. |
| custom-comparator | Examples of using custom comparators in C++. |
| z-miscellaneous | A collection of other problems and notes. |
I welcome contributions! If you'd like to add a new solution, improve an existing one, or fix a bug, please feel free to open a pull request.
- 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.
This project is open source. Feel free to use the code for your own learning.