Arrays & 2D Arrays
Vectors & 2D Vectors
Linked Lists (Single, Double, Circular)
Stack & Queue (Circular, Deque)
Binary Tree & BST
Map & Set
Sorting (Bubble, Insertion, Selection, Merge, Quick, Cycle)
Searching (Linear, Binary)
Recursion (Basics & Intermediate)
Bit Manipulation
Prefix Sum & Sliding Window
Pattern Problems
LeetCode problems (DSA Sheet)
Product-based company questions
Service-based company questions
Mathematical problems
String manipulation
Pointer-based problems
Click to expand / collapse the full directory tree
DSA/
βββ CPP Basics/ β Foundational C++ programs
β βββ PrintHello.cpp
β βββ SumOf2Numbers.cpp
β βββ SimpleInterest.cpp
β βββ CircleArea.cpp
β βββ ...40+ files
β
βββ Conditional/ β Decision-making constructs
β βββ If Else/ (21 problems)
β β βββ Calculator.cpp
β β βββ LeapYearOrNot.cpp
β β βββ ...
β βββ Switch/ (16 problems)
β β βββ Calculator.cpp
β β βββ ...
β βββ Ternary/ (10 problems)
β βββ GreatestAmong3.cpp
β βββ ...
β
βββ Loop/ β Iteration constructs
β βββ For Loop/ (40+ problems)
β β βββ FibonacciSeries.cpp
β β βββ PrimeNumber.cpp
β β βββ ...
β βββ While Loop/ (40+ problems)
β β βββ ...
β βββ Do While Loop/ (30+ problems)
β βββ ...
β
βββ Functions/ β Function-based problems
β βββ Factorial.cpp
β βββ FindGCD.cpp
β βββ PalindromeOrNot.cpp
β βββ ...50+ files
β
βββ Pointers/ β Pointer concepts & usage
β βββ PointerIntro.cpp
β βββ DoublePointer.cpp
β βββ PassByReference.cpp
β βββ PassByValue.cpp
β βββ ...25+ files
β
βββ Array/ β 1D Array operations
β βββ MaximumElement.cpp
β βββ SecondMaximumElement.cpp
β βββ Subarray.cpp
β βββ ...40+ files
β
βββ Vector/ β STL Vector operations
β βββ VectorBasics.cpp
β βββ Sort0And1And2ByThreePointer.cpp
β βββ Merge2SortedArray.cpp
β βββ ...60+ files
β
βββ 2D Arrays/ β Matrix operations
β βββ TransposeOfMatrix.cpp
β βββ Rotate90Degree.cpp
β βββ SpiralModel.cpp
β βββ MatrixMultiplication.cpp
β βββ ...25+ files
β
βββ 2D Vectors/ β 2D Vector problems
β βββ PascalTriangle.cpp
β βββ SearchIn2DMatrix.cpp
β βββ SpiralMatrix.cpp
β βββ ...16 files
β
βββ String/ β String manipulation
β βββ Introduction/ (20+ basics)
β β βββ ReverseFromIndex2To5.cpp
β β βββ ...
β βββ BulitInFunction/ (11 STL string functions)
β β βββ Reverse.cpp
β β βββ Sort.cpp
β β βββ ...
β βββ Intermediate/ (11 problems)
β βββ LongestCommonPrefix.cpp
β βββ ValidAnargam.cpp
β βββ ...
β
βββ Sorting/ β Sorting algorithms
β βββ Bubble Sort/ (10 variants)
β β βββ IncreasingOrder.cpp
β β βββ OptimizedIncreasingOrder.cpp
β β βββ ...
β βββ Insertion Sort/ (4 variants)
β βββ Selection Sort/ (2 variants)
β βββ Problems On Sorting/ (9 LeetCode problems)
β βββ KthLargestElementFirstApproach.cpp
β βββ MajorityElement.cpp
β βββ ...
β
βββ Advance Sorting/ β Advanced sorting techniques
β βββ Merge Sort/ (5 problems)
β β βββ IncreasingOrderMergeSort.cpp
β β βββ CountInversionOptimized.cpp
β β βββ ...
β βββ Quick Sort/ (3 variants)
β β βββ QuickSortByTakingStartEle.cpp
β β βββ ...
β βββ Cycle Sort/ (5 problems)
β βββ MissingNumber.cpp
β βββ FindTheDuplicateNumber.cpp
β βββ ...
β
βββ Searching/ β Search algorithms
β βββ Linear Search/ (8 problems)
β β βββ FindTargetElement.cpp
β β βββ LowerBound.cpp
β β βββ ...
β βββ Binary Search/ (17 problems)
β βββ FindLowerBound.cpp
β βββ KokoEatingBananas.cpp
β βββ CapacityToShipPackagesWithinDDays.cpp
β βββ ...
β
βββ Recursion/ β Recursive problem solving
β βββ Basics/ (14 problems)
β β βββ CalculateFactorial.cpp
β β βββ TowerOfHanoi.cpp
β β βββ ...
β βββ Intermediate/ (45+ problems)
β βββ GenerateParentheses.cpp
β βββ PermutationSequence.cpp
β βββ MazePath.cpp
β βββ ...
β
βββ Diveinto Mathematics/ β Math-based algorithms
β βββ Bitwise Operator/ (12 problems)
β β βββ NumberOfSetBits.cpp
β β βββ Find2UniqueElement.cpp
β β βββ ...
β βββ Prefix Sum/ (18 problems)
β β βββ PrefixSum.cpp
β β βββ ProductOfArrayItself_Method1.cpp
β β βββ ...
β βββ Sliding Window/ (10 problems)
β βββ MaximumSumOfSubarraySizeK.cpp
β βββ MinimumSizeSubarraySum.cpp
β βββ ...
β
βββ Bits Manipulation/ β Bit-level operations
β βββ PowerOf2.cpp
β βββ PowerOf4.cpp
β βββ PartyOfCouples.cpp
β
βββ Maths/ β Mathematical problems
β βββ CountPrimes.cpp
β βββ PerfectNumber.cpp
β βββ UglyNumber.cpp
β βββ ...8 files
β
βββ Pattern Problems/ β Pattern printing
β βββ Star Pattern/ (13 patterns)
β β βββ Pyramid.cpp
β β βββ HollowPyramid.cpp
β β βββ ...
β βββ Numerical Pattern/ (17 patterns)
β β βββ NumberPattern1.cpp
β β βββ ...
β βββ Alphabet Pattern/
β β βββ Capital Letter/ (20 patterns)
β β βββ Small Letter/ (15 patterns)
β βββ Complex Pattern/ (10 patterns)
β βββ DiamondStar.cpp
β βββ ArrowShaped.cpp
β βββ ...
β
βββ Single Linked List/ β Singly linked list
β βββ InsertInLinkedList.cpp
β βββ ReverseLinkedList.cpp
β βββ LinkedListCycle.cpp
β βββ Merge_K_SortedList.cpp
β βββ ...50+ files
β
βββ Double Linked List/ β Doubly linked list
β βββ AddElementsAtHead.cpp
β βββ ReverseDoubleLinkedList.cpp
β βββ ...22 files
β
βββ Circular Linked List/
β βββ Circular Single Linked List/ (15 files)
β βββ All_InsertionOperation.cpp
β βββ ...
β
βββ Stack/ β Stack data structure
β βββ ImplementStackByArray.cpp
β βββ ImplementingStackUsingLinkedList.cpp
β βββ InfixToPostfixExpression.cpp
β βββ LargestRectangleInHistogram.cpp
β βββ MinStackWithMostOptimizedSolution.cpp
β βββ ...60+ files
β
βββ Queue/ β Queue data structure
β βββ ImplementQueueUsingArray.cpp
β βββ ImplementUsingLinkedList.cpp
β βββ PopEfficientImplementUsingStack.cpp
β βββ RevealCardsInIncreasingOrder.cpp
β βββ ...35+ files
β
βββ Circular Queue/
β βββ DesignCircularQueue.cpp
β βββ CircularQueueImplementaionUsingVector.cpp
β
βββ Dequeue/ β Double-ended queue
β βββ DequeImplementation.cpp
β βββ ImplementDequeUsingDoubleLinkedList.cpp
β βββ SlidingWindowMaximum.cpp
β βββ ...14 files
β
βββ Binary Tree/ β Binary tree problems
β βββ Basics/ (15 problems)
β β βββ DiameterOfBinaryTree.cpp
β β βββ LowestCommonAncesorOfBinaryTree.cpp
β β βββ ...
β βββ Traversals/ (15 traversal methods)
β β βββ BFS.cpp
β β βββ BinaryTreeLevelOrderTraversal.cpp
β β βββ ...
β βββ InterView Question/ (13 problems)
β βββ BinaryTreeLeftSideView.cpp
β βββ BoundaryTraversal.cpp
β βββ ...
β
βββ Binary Search Tree/ β BST problems
β βββ Basics/ (8 problems)
β β βββ InsertIntoBinarySearchTree.cpp
β β βββ ValidateBinarySearchTree.cpp
β β βββ ...
β βββ Deletion/ (9 problems)
β β βββ DeleteNodeInBST.cpp
β β βββ ...
β βββ Moris Traversal/ (3 problems)
β βββ MorisTraversal.cpp
β βββ FlattenBinaryTreeToLinkedList.cpp
β
βββ Map/
β βββ Basic/ (6 operations)
β βββ InsertionType1.cpp
β βββ DeleteInMap.cpp
β βββ ...
β
βββ Set/
β βββ Basic/ (6 operations)
β β βββ InsertionInSet.cpp
β β βββ ...
β βββ Leetcode/ (2 problems)
β
βββ DSA Sheet/ β Curated interview problems
βββ Product Based/
β βββ Array & Numbers/
β β βββ majorityElement.cpp
β βββ String/
β βββ lengthOfLastWord.cpp
βββ Service Based/
βββ Array & Numbers/
β βββ containsDuplicate.cpp
β βββ majorityElement.cpp
βββ Stack & Queue/
β βββ minStack.cpp
βββ String/
β βββ lengthOfLastWord.cpp
βββ Two Pointer & Sliding Window/
# Compile a single file
g++ -std=c++17 -o output filename.cpp
# Run
./output
# Compile with warnings (recommended)
g++ -std=c++17 -Wall -Wextra -o output filename.cpp
cd " Sorting/Merge Sort"
g++ -std=c++17 -o mergesort IncreasingOrderMergeSort.cpp
./mergesort
π§° Topic Quick Reference
Topic
Folder
Problems
C++ Basics
CPP Basics/
40+
Conditionals
Conditional/
47
Loops
Loop/
110+
Functions
Functions/
50+
Pointers
Pointers/
25+
Arrays
Array/
40+
Vectors
Vector/
60+
2D Arrays
2D Arrays/
25+
Strings
String/
42+
Sorting
Sorting/ + Advance Sorting/
30+
Searching
Searching/
25
Recursion
Recursion/
60+
Linked Lists
Single/Double/Circular Linked List/
90+
Stack
Stack/
60+
Queue
Queue/ + Circular Queue/ + Dequeue/
50+
Trees
Binary Tree/ + Binary Search Tree/
43
Math
Maths/ + Diveinto Mathematics/
40+
Patterns
Pattern Problems/
75+
DSA Sheet
DSA Sheet/
Growing
π‘ LeetCode
π Custom
π’ Product Based
ποΈ Service Based
Binary Search, Trees, DP
Sorting, Patterns, Basics
Arrays, Strings, Stack
Arrays, Strings, Two Pointer
# 1. Clone the repo
git clone < repo-url>
cd DSA
# 2. Create a topic branch
git checkout -b topic/< topic-name>
# 3. Add your solution
# Follow naming convention: PascalCase.cpp
# 4. Commit with a clear message
git add .
git commit -m " feat(binary-search): add KthSmallestInMatrix"
# 5. Push and open a PR
git push origin topic/< topic-name>
Naming convention: PascalCase.cpp β e.g., FindTheDuplicateNumber.cpp
Rule
Requirement
β
File naming
PascalCase.cpp
β
Folder placement
Place in the correct topic folder
β
Code style
Clean, readable, with comments where needed
β
Compilation
Must compile with g++ -std=c++17
Made with β€οΈ by Rahul Goswami