Skip to content

arindal1/SDE-DSA-SD-Prep

Repository files navigation


Welcome to my comprehensive SDE Interview Prep repository! This repo is a one-stop hub that covers A-Z of Data Structures and Algorithms, System Design and CS Core crafted specifically for mastering technical interviews at product-based companies and high-growth startups.

Each problem is thoughtfully categorized, solved in C++, and accompanied by detailed Markdown explanations to help you understand the logic, intuition, and edge cases. Whether you're brushing up on fundamentals or tackling advanced topics โ€” this repo's got you.

๐Ÿ“Œ DSA Sources: Striver's A2Z , NeetCode 150 , Blind 75 , Top Interview 150
๐Ÿ“Œ System Design Sources: System Design Primer


๐Ÿ“ Data Structures and Algorithms

[ ๐Ÿ“„ .md files for explanation | ๐Ÿ’ป .cpp files for code implementation ]

๐Ÿง  Basics


Category Problem / Algorithm Explanation Code
๐Ÿ“˜ 1. Maths Count the Digits ๐Ÿ“„ MD โ€“
๐Ÿ“˜ 1. Maths Reverse a Number ๐Ÿ“„ MD โ€“
๐Ÿ“˜ 1. Maths Palindrome Number ๐Ÿ“„ MD โ€“
๐Ÿ“˜ 1. Maths GCD ๐Ÿ“„ MD โ€“
๐Ÿ“˜ 1. Maths Armstrong Number ๐Ÿ“„ MD โ€“
๐Ÿ“˜ 1. Maths All Divisors ๐Ÿ“„ MD โ€“
๐Ÿ“˜ 1. Maths Check Prime ๐Ÿ“„ MD โ€“
๐Ÿ” 2. Recursion Print N Names ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 2. Recursion 1 to N ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 2. Recursion N to 1 ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 2. Recursion Sum of N ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 2. Recursion Factorial of N ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 2. Recursion Reverse Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 2. Recursion Palindrome String ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 2. Recursion Fibonacci ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 3. Hashing Frequency of Array Elements ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 3. Hashing Highest & Lowest Freq Element ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 3. Hashing First Unique Character ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 3. Hashing Find Difference ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 3. Hashing Find Duplicates ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ” 3. Hashing Is Anagram ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐Ÿ”ข Sorting


Category Problem / Algorithm Explanation Code
๐Ÿ“‘ 1. Elementary Selection Sort ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Elementary Bubble Sort ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Elementary Insertion Sort ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ˆ 2. Advanced Merge Sort ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ˆ 2. Advanced Quick Sort ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ˆ 2. Advanced Heap Sort ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ˆ 2. Advanced Radix Sort ๐Ÿ“„ MD ๐Ÿ’ป CPP

โ™ ๏ธ Arrays


Category Problem / Algorithm Explanation Code
๐Ÿ“‘ 1. Easy Largest Element in the Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Second Largest Element in the Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Is Array Sorted? ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Remove Duplicates from Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Left Rotate by One ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Rotate Array by K Places ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Shift Zeros to End ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Linear Search ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Find The Union ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Find The Intersection ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Find The Missing Number ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Max Consecutive Ones ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Number that Appears Once ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Longest Subarray with Sum K ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Remove K From Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy One Plus ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Remove Value From Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Container With Most Water ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“‘ 1. Easy Move Zeros To End ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Two Sum ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Sort an Array of 0s, 1s & 2s ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Majority Element - I [> n/2] ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Maximum Sub-Array Sum ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Best Time to Buy and Sell Stock ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Rearrange Elements by Sign [Alternating] ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Next Permutation ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Leaders in an Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Longest Consecutive Sequence ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Set Matrix Zeros ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Rotate Matrix By 90 Degrees ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Matrix Spiral Traversal ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Sub Arrays With Sum K ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Partition Labels ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Sorted Array Squares ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Boats To Save People ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Simple Bank System ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Laser Beams in a Bank ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“ƒ 2. Medium Count Ungaurded Cells ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Pascal's Triangle ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Majority Element - II [> n/3] ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Three Sum ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Four Sum ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Count Subarrays with Xor K ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Merge Overlapping Intervals ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Merge Sorted Arrays ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Find Repeating and Missing Numbers ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Count Inversions ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Reverse Pairs ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Maximum Product Subarray ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ“œ 2. Hard Product of Array except Self ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐Ÿ” Binary Search


Category Problem / Algorithm Explanation Code
โ‰๏ธ 3. BS on 1D Binary Search on Sorted Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 1D Search Insert Position ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 1D First and Last Occurance in a Sorted Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 1D Search in a Rotated Sorted Array - I ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 1D Search in a Rotated Sorted Array - II ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 1D Minimum in Rotated Sorted Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 1D Single Element in a Sorted Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 1D Find Peak Element - I ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 1D Arranging Coins ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 1D First Bad Version ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Koko Eating Bananas ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Days to make M Bouquets ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Smallest Divisor within the Threshold ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Capacity to Ship within D Days ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Find the K-th Missing Element ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Aggressive Cows ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Book Allocation ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Split Array to Largest Sum ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Minimize Max Distance between Gas Stations ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Median of Two Sorted Arrays ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ€ผ๏ธ 2. BS on Answers Time Map ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 2D Row with Maximum 1s ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 2D Search in a 2D Matrix - I ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 2D Search in a 2D Matrix - II ๐Ÿ“„ MD ๐Ÿ’ป CPP
โ‰๏ธ 3. BS on 2D Find Peak Element - II ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐Ÿงต Strings


Category Problem / Algorithm Explanation Code
๐Ÿ• Easy Remove Outer Parenthesis ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ• Easy Largest Odd Number ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ• Easy Longest Common Prefix ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ• Easy Isomorphic Strings ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ• Easy Rotate String ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ• Easy Is Anagram ? ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ• Easy Valid Palindrome ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿˆ Medium Frequency Sort ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿˆ Medium Max Depth of Parenthesis ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿˆ Medium Roman to Integer ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿˆ Medium String to Integer (ATOI) ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿˆ Medium Longest Palindrome Substrings ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿˆ Medium Sum of Beauty of Substrings ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿˆ Medium Reverse Words in a String ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿˆ Medium Group Anagrams ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿˆ Medium Longest Substring without Repeating Char ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐Ÿ”— Linked Lists


Category Problem / Algorithm Explanation Code
โžก๏ธ Singly LL Linked List Constructors ๐Ÿ“„ MD ๐Ÿ’ป CPP
โžก๏ธ Singly LL Array to Linked List ๐Ÿ“„ MD ๐Ÿ’ป CPP
โžก๏ธ Singly LL Insertion at Head ๐Ÿ“„ MD ๐Ÿ’ป CPP
โžก๏ธ Singly LL Insertion at Tail ๐Ÿ“„ MD ๐Ÿ’ป CPP
โžก๏ธ Singly LL Insertion at K ๐Ÿ“„ MD ๐Ÿ’ป CPP
โžก๏ธ Singly LL Deletion from Head ๐Ÿ“„ MD ๐Ÿ’ป CPP
โžก๏ธ Singly LL Deletion from Tail ๐Ÿ“„ MD ๐Ÿ’ป CPP
โžก๏ธ Singly LL Deletion from K ๐Ÿ“„ MD ๐Ÿ’ป CPP
โžก๏ธ Singly LL Length of Linked List ๐Ÿ“„ MD ๐Ÿ’ป CPP
โžก๏ธ Singly LL Search K in Linked List ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ”€ Doubly LL Array to DLL ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ”€ Doubly LL Insertion at Head ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ”€ Doubly LL Insertion at Tail ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ”€ Doubly LL Insertion at K ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ”€ Doubly LL Deletion from Head ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ”€ Doubly LL Deletion from Tail ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ”€ Doubly LL Deletion at K ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ”€ Doubly LL Reverse a Doubly LL ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Find the middle of a LL ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Reverse a LL (Iterative) ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Reverse a LL (Recursive) ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Detect a Cyclic Linked List ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Find the start of the Loop ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Find the length of the Loop ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Palindrome Linked List ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Odd Even Linked List ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Delete Nth Node from Back ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Delete Middle Note ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Sort Linked List ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Intersection of Two LLs ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Add 1 to a number in LL ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Add two numbers in LL ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Swap Pairs ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Merge Inbetween Zeros ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Medium Singly LL Delete Nodes present in an Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒ€ Medium Doubly LL Delete all occurance of Key ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒ€ Medium Doubly LL Pairs with given Sum in DLL ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒ€ Medium Doubly LL Remove Duplicates from a DLL ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ’€ Hard Singly LL Reverse LL in a Group ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ’€ Hard Singly LL Rotate a LL ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ’€ Hard Singly LL Merge 2 Sorted LLs ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ’€ Hard Singly LL Merge K sorted LLs ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ’€ Hard Singly LL Clone a LL ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ’€ Hard Singly LL Browser History ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐Ÿ” Recursion


Category Problem / Algorithm Explanation Code
๐Ÿ™ƒ Basics AOTI ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ™ƒ Basics Pow (x, n) ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ™ƒ Basics Good Numbers ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ™ƒ Basics Sort Stack ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ™ƒ Basics Reverse Stack ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Generate Binary Strings ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Generate Paranthesis ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Power Set ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Subsequences with Sum K ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Subsequences with Sum K - II ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Combination Sum ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Combination Sum - II ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Subsets ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Subsets - II ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Combination Sum - III ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Phone Number Combination ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿซจ Subsquences Permutations of a String ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค  Hard Palindrome Partioning ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐Ÿ“ฆ Stack and Queue


Category Problem / Algorithm Explanation Code
๐ŸŽˆ Basics Implement Stack Using Queue ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽˆ Basics Implement Queue Using Stacks ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽˆ Basics Valid Parenthesis ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽˆ Basics Implement Min-Stack ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงจ Expressions Infix 2 Postfix ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงจ Expressions Infix 2 Prefix ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงจ Expressions Postfix 2 Infix ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงจ Expressions Prefix 2 Infix ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงจ Expressions Postfix 2 Prefix ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงจ Expressions Prefix 2 Postfix ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ† Monotonic DS Next Greater Element (LC) ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ† Monotonic DS Next Greater Element II ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ† Monotonic DS Next Smaller Element ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ† Monotonic DS NGE to Right ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ† Monotonic DS Trapping Rainwater ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ† Monotonic DS Sum of Subarray Minimums ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ† Monotonic DS Astroid Collisions ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ† Monotonic DS Remove K Digits ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ† Monotonic DS Largest Rectangle in Histogram ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ† Monotonic DS Maximum Rectangle ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽƒ Advanced Sliding Window Maximum ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽƒ Advanced Online Stock Span ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽƒ Advanced The Celebrity Problem ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽƒ Advanced LRU Cache ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽƒ Advanced LFU Cache ๐Ÿ“„ MD ๐Ÿ’ป CPP

ใ€ฝ๏ธ Two Pointer and Sliding Window


Category Problem / Algorithm Explanation Code
๐ŸŽฒ Medium Longest Substring without Repeating Characters ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฒ Medium Max Consecutive Ones III ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฒ Medium Fruits in a Basket ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฒ Medium Longest Repeating Character Replacement ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฒ Medium Binary Subarray with Sum K ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฒ Medium Subarrays that are Nice ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฐ Hard Substring w/ K Distinct Characters ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฐ Hard Substring w/ K Different Characters ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฐ Hard Minimum Window Substring ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐Ÿ—ป Heaps

Category Problem / Algorithm Explanation Code
๐ŸŽด Basics About Priority Queues ๐Ÿ“„ MD -
๐ŸŽด Basics Binary Min Heap ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽด Basics Binary max Heap ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽด Basics Is Array a Min Heap ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽด Basics Min Heap 2 Max Heap ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ€„ Medium Kth Largest Element ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ€„ Medium Kth Smallest Element ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ€„ Medium Sort Almost Sorted Array ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ€„ Medium Task Scheduler ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿƒ Hard Design Twitter ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿƒ Hard Connect Sticks ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿƒ Hard Kth Largest in a Stream ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿƒ Hard Max Sum Combination ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿƒ Hard Median in a Data Stream ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿƒ Hard K Frequent Elements ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐Ÿค‘ Greedy Algorithm

Category Problem / Algorithm Explanation Code
๐Ÿคง Easy Assign Cookies ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿคง Easy Fractional Knapsack ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿคง Easy Minimum Coins ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿคง Easy Lemonade Changes ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿคง Easy Valid Parenthesis ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค Medium N Meetings ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค Medium Jump Game ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค Medium Jump Game II ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค Medium Minimum Platforms for Trains ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค Medium Job Sequencing ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค Medium Candy ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค Medium Shortest Job First ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค Medium LRU Cache ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค Medium Insert Intervals ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿค Medium Largest Number ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐ŸŒด Binary Trees

Category Problem / Algorithm Explanation Code
๐ŸŒณ Traversals Introductions ๐Ÿ“„ MD -
๐ŸŒณ Traversals Binary Trees in C++ ๐Ÿ“„ MD -
๐ŸŒณ Traversals Preorder - Recursive ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒณ Traversals Inorder - Recursive ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒณ Traversals Postorder - Recursive ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒณ Traversals Level Order ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒณ Traversals Preorder - Iterative ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒณ Traversals Inorder - Iterative ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒณ Traversals Postorder - Iterative ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒณ Traversals Level Order - Bottom First ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Max Depth of BT ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Is BT Balanced? ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Diameter of BT ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Max Sum of Path ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Is it the Same Tree? ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Zig zag Traversal ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium BT Boundary Traversal ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Vertical Traversal in BT ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Top View in BT ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Bottom View in BT ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Right Side View of BT ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Left Side View of BT ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Symmetric BT ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Invert Binary Tree ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŒฒ Medium Minimum Depth of BT ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Root to Node Path ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Lowerst Common Ancestor ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Maximum Width of BT ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Children Sum Property I ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Children Sum Property II ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard All Nodes at a distance K ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Minimum Time to Burn Tree ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Count Total Nodes ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Construct BT from Inorder ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Contruct BT from Postorder ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Serialize and Deserialize ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Morris Inorder Traversal ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽ‹ Hard Flatten Binary Tree ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐Ÿฆœ Binary Search Trees

Category Problem / Algorithm Explanation Code
๐Ÿšฒ Concepts Introduction ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿšฒ Concepts Search in BST ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿšฒ Concepts Find Min / Max ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Ceiling of K in BST ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Floor of K in BST ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Insertion into BST ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Delete Node from BST ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Find Kth Smallest & Largest ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Validate a BST ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Least Common Ancestor ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Build a Unique BST ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Inorder Succesor in BST ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Merge Two BSTs ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Two Sum IV ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Recover BST ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Max Sum in BST ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿ›ผ Medium Largest BST Subtree ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐Ÿ’น Graphs

Category Problem / Algorithm Explanation Code
๐ŸŽฏ Basics Introduction ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Basics Graphs in CPP ๐Ÿ“„ MD -
๐ŸŽฏ Basics Graphs in Java ๐Ÿ“„ MD -
๐ŸŽฏ Basics Graphs in Javascript ๐Ÿ“„ MD -
๐ŸŽฏ Basics Connected Components in Graph ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Basics BFS Traversal in Graphs ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐ŸŽฏ Basics DFS Traversal in Graphs ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Number of Provinces ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Rotten Oranges ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Flood Fill ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Detect Cycle in Undirected Graph - BFS ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Detect Cycle in Undirected Graph - DFS ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Surrounded Regions ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Number of Enclaves ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Word Ladder ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Word Ladder II ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Number of Islands ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Bipartite Graph ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงฉ Medium Detect Cycle in Directed Graph - DFS ๐Ÿ“„ MD ๐Ÿ’ป CPP
๐Ÿงธ Topo Sort - ๐Ÿ“„ MD ๐Ÿ’ป CPP

๐ŸŽ–๏ธ Dynamic Programming

Category Problem / Algorithm Explanation Code
๐Ÿญ Basics - ๐Ÿ“„ MD ๐Ÿ’ป CPP

---

โš›๏ธ Development Structure

I know this might seem like a lot, but success only comes to those who persist, and don't give up. Anyway, as you progress through the foundations, the later parts become easier.

๐Ÿ• React Frontend Roadmap


Topic Resourse Links Notes
HTML Youtube - Dave Gray YT Do this first, learn about semantics and tags and why they are important.
CSS Youtube - Dave Gray YT Get basic understanding of CSS classes, and practices with simple projects.
HTML & CSS Youtube - SuperSimpleDev YT Love Simon's content, super simple, and easy to understand.
Javascript Hitest Choudhary YT This is an old series by Hitesh sir, all in english, and pretty solid.
Javascript Hitest Choudhary YT This series is in Hindi, more modern and simple.
Javascript SuperSimpleDev YT Simon again, he is also really great, industry standard but simple.
Javascript Dave Gray YT Dave is also great, but I prefered the other three above in JS.
Javascript arindal1 repo Elaborate notes on Javascript with code and examples.
Javascript arindal1 repo A 30 Day Javascript challenge, to make your foundations solid.
Git Brendan Dickinson YT Short and sweet intro to Git.
Git Nick White YT Simple and straight, a more casual and easy explanation.
Git Hitesh Choudhary YT If you want to go in depth, with inner mechanisms and industry level standards.
NPM Traversy Media YT Course to package managers for Development.
TailwindCSS JavascriptMastery YT Great explanations, and hands on parctice.
TailwindCSS Dave Gray YT Dave is really good with CSS, smh.
ReactJS Hitesh Choudhary YT - repo Pure beginner friendly course for React. Hitesh sir is super particular about industry standards.
ReactJS Hitesh Choudhary YT This series is in Hindi, equivalent to the course above.
ReactJS SuperSimpleDev YT Simon is always straightforward, and tries his best to keep things simple but good quality.
ReactJS JavascriptMastery YT Once you have understood basics of React, watch this.
Linters and Formatters CoderDave YT Linters are fairly easy, just watch this and gain a basic understanding.
Module Bundler Fireship YT You will already know about module bundlers while learning React, if not, this is for you. I find fireship really interesting.
Vite CodeSTACKr YT A vite crash course to know indepth mechanisms of Vite. (optional)
Testing dotconferences YT Testing is an essential but advanced part of development. This video tells you all about testing in industry.
Jest FreeCodeCamp YT Jest is a Javascript testing tech.
Authentication Hayk Simonyan YT Hayk Simonyan
Web API Keep on Coding YT Basics of Web API.
Types of APIs Codist YT Different types of APIs used in the industry, and why?
Rest API IBM Tech YT A little about Restful APIs
Web Security Arkenstone Learning YT This a playlist that focuses on WebSecurity through ZAP, not super important, but do learn the theory.
SSR Microsoft Developer YT What is Server Side Rendering?
SSR Smoljames YT Server Side Rendering vs Client Side Rendering
NextJs FreeCodeCamp YT Well, if you have got your hands on React, and want to dive into SSR. Well, NextJS is the best. And... it's taught by the Head of Developer Community at Vercel!
SSG Net Ninja YT Static Site Generators (SSGs) build websites as pre-generated HTML files from content and templates. Make sites fast, secure, and easy to host. (kinda optional)
Design System Figma YT Well designing your site is also important.
Deployments - Multiple - Netlify - Github - Vercel - Render - How to deploy your code in the Internet.
Web Performance Dmitriy Zhiganov YT How to enhance the performance of your site. Design Systems.
Lighthouse WPDev YT Lighthouse is an open-source, automated tool for improving the quality of web pages.
Dev Tools Tobi Mey YT DevTools are a set of web developer tools built directly into web browsers.
Service Workers Udacity YT Service Workers are JavaScript files that act as proxy servers between web browsers and web servers.
Accessibility Chrome YT Understanding Accessibility and it's importance for websites.

that should be all for Frontend development. Rest is upto practice and projects.

๐Ÿ”ฐ Node Backend Roadmap


In progress.

๐Ÿต Java Roadmap


Phase 1: Core JAVA + OOP

  • Java memory model (Heap v Stack)
  • OOP Principles
  • SOLID Principles
  • Generics, Lamda, Streams
  • Exception Handling
  • Immutibility & Best Practices
  • JVM Internals

Phase 2: DSA

  • FAANG Level prep
  • Clean Code
  • Edge-case handling
  • TIME + Space Complexity

Phase 3: Multithreading & Concurrency

  • Thread lifecycle
  • Synchronization v Locks
  • Deadlocks, Starvation
  • ExecutorService
  • Completable Future
  • Concurrent Collections

Phase 4: Spring Boot + RestAPIs

  • Spring Core & Dependency Injection
  • Spring Boot auto-config
  • RestAPI design
  • Validation & Execution Handling
  • Spring Security (JWT + Role Based)
  • Logging & Monitoring
  • Unit + Integration testing

Phase 5: Databses

  • SQL:

    • Indexing & query optimizations
    • Joins & Subqueries
    • ACID v BASE
  • NoSQL:

    • MongoDB schema design
    • when to use SQL & noSQL
    • Redis Caching

Phase 6: System Design

Below ๐Ÿ”ฝ๐Ÿ”ฝ


๐Ÿ“ System Design Structure

Topic Resource Links Notes
Introduction Crio.do article Basic intro to System Design and Engineering.
Guide Swimm article Basic intro to System Design and patterns.
The Primer donnemartin repo The System Design Primer. It's the Holy Grail for SDEs, trust me.
SD Template Top Cat leetcode A template for how to approach designing an efficient System.
SD Questions HiredInTech article In this course you will see what such system design interview questions look like and what is expected from you in order to solve them.
SD Interviews Jackson Gabbard YT Walk through the context and goals of a systems design and architecture interview.

[ IN PROGRESS ]


Contact

๐ŸŒŸ Star the Repo if You Find it Useful!

About

Comprehensive repository to track my progress for SDE preparation, in DSA, System Design and CS Core. Includes Striver, NeetCode, DonneMartin, and more.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages