A comprehensive repository containing structured guides, implementation templates, and curated practice problems for a wide range of Data Structures and Algorithms. This project is my personal knowledge base for learning DSA for competitive programming and technical interviews. I have implemented the solution for the problem publicly in this repository so that everyone can use this as a template for leaning DSA implementing their own solution and organize their learning.
This repository is a structured learning environment. Each topic is organized into its own directory containing a detailed README.md file that acts as a revision guide. These guides include:
- Conceptual Overviews: Brief but thorough explanations of core concepts.
- Implementation Templates: Clean, well-commented C++ code for key algorithms.(Add as per learning)
- Complexity Analysis: Time and space complexity for major operations.
- Curated Practice Problems: A handpicked list of problems from platforms like LeetCode, Codeforces, and CSES to solidify understanding.
/
├── 01-Introduction/
│ ├── 01-Big-O-Notation/
│ └── 02-Fast-IO/
├── 02-Data-Structures/
│ ├── 01-Array/
│ ├── 02-String/
│ ├── 03-Stack-Queue/
│ ├── 04-Heap-Priority-Queue/
│ ├── 05-Set-Map/
│ ├── 06-Trees/
│ │ ├── 01-Binary-Search-Tree/
│ │ └── 02-Trie/
│ ├── 07-Segment-Tree/
│ ├── 08-Fenwick-Tree/
│ └── 09-Disjoint-Set-Union/
├── 03-Algorithms/
│ ├── 01-Searching-Sorting/
│ │ ├── 01-Binary-Search/
│ │ └── 02-Merge-Sort/
│ ├── 02-Greedy/
│ ├── 03-Two-Pointers-Sliding-Window/
│ │ ├── Sliding-Window.md
│ │ └── Two-Pointers.md
│ ├── 04-Recursion-Backtracking/
│ ├── 05-Dynamic-Programming/
│ │ ├── 01-DP-on-Grids/
│ │ ├── 02-Knapsack/
│ │ ├── 03-Longest-Increasing-Subsequence/
│ │ ├── 04-DP-on-Subsets/
│ │ └── 05-DP-on-Trees/
│ └── 06-Bit-Manipulation/
├── 04-Graph-Theory/
│ ├── 01-Graph-Traversal-BFS-DFS/
│ ├── 02-Shortest-Path/
│ ├── 03-Minimum-Spanning-Tree/
│ ├── 04-Topological-Sort/
│ └── 05-Strongly-Connected-Components/
├── 05-Mathematics/
│ ├── 01-Number-Theory/
│ ├── 02-Combinatorics/
│ └── 03-Game-Theory/
├── 06-String-Algorithms/
│ ├── 01-Hashing/
│ ├── 02-KMP-Algorithm/
│ └── 03-Z-Algorithm/
├── 07-Geometry/
├── 08-Advanced-Techniques/
│ └── 01-Square-Root-Decomposition/
├── templates/
│ ├── template.cpp
└── README.md
While this is a personal repository, suggestions and contributions are welcome. If you find an error, have a suggestion for a better explanation, or want to recommend a good problem, feel free to open an issue or submit a pull request.=
Here are few resources used to compile the information in this repository:
- CP-Algorithms: An excellent and comprehensive resource for algorithms.
- CSES Problem Set: A curated collection of high-quality competitive programming problems.
- USACO Guide: A structured guide with high-quality content and problems.
- TopCoder Tutorials: A collection of legendary tutorials on a wide range of topics.