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
[ ๐ .md files for explanation | ๐ป .cpp files for code implementation ]
| 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 |
| 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 |
| 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 |
| Category | Problem / Algorithm | Explanation | Code |
|---|---|---|---|
| Binary Search on Sorted Array | ๐ MD | ๐ป CPP | |
| Search Insert Position | ๐ MD | ๐ป CPP | |
| First and Last Occurance in a Sorted Array | ๐ MD | ๐ป CPP | |
| Search in a Rotated Sorted Array - I | ๐ MD | ๐ป CPP | |
| Search in a Rotated Sorted Array - II | ๐ MD | ๐ป CPP | |
| Minimum in Rotated Sorted Array | ๐ MD | ๐ป CPP | |
| Single Element in a Sorted Array | ๐ MD | ๐ป CPP | |
| Find Peak Element - I | ๐ MD | ๐ป CPP | |
| Arranging Coins | ๐ MD | ๐ป CPP | |
| First Bad Version | ๐ MD | ๐ป CPP | |
| Koko Eating Bananas | ๐ MD | ๐ป CPP | |
| Days to make M Bouquets | ๐ MD | ๐ป CPP | |
| Smallest Divisor within the Threshold | ๐ MD | ๐ป CPP | |
| Capacity to Ship within D Days | ๐ MD | ๐ป CPP | |
| Find the K-th Missing Element | ๐ MD | ๐ป CPP | |
| Aggressive Cows | ๐ MD | ๐ป CPP | |
| Book Allocation | ๐ MD | ๐ป CPP | |
| Split Array to Largest Sum | ๐ MD | ๐ป CPP | |
| Minimize Max Distance between Gas Stations | ๐ MD | ๐ป CPP | |
| Median of Two Sorted Arrays | ๐ MD | ๐ป CPP | |
| Time Map | ๐ MD | ๐ป CPP | |
| Row with Maximum 1s | ๐ MD | ๐ป CPP | |
| Search in a 2D Matrix - I | ๐ MD | ๐ป CPP | |
| Search in a 2D Matrix - II | ๐ MD | ๐ป CPP | |
| Find Peak Element - II | ๐ MD | ๐ป CPP |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
---
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.
| 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.
- Java memory model (Heap v Stack)
- OOP Principles
- SOLID Principles
- Generics, Lamda, Streams
- Exception Handling
- Immutibility & Best Practices
- JVM Internals
- FAANG Level prep
- Clean Code
- Edge-case handling
- TIME + Space Complexity
- Thread lifecycle
- Synchronization v Locks
- Deadlocks, Starvation
- ExecutorService
- Completable Future
- Concurrent Collections
- Spring Core & Dependency Injection
- Spring Boot auto-config
- RestAPI design
- Validation & Execution Handling
- Spring Security (JWT + Role Based)
- Logging & Monitoring
- Unit + Integration testing
-
SQL:
- Indexing & query optimizations
- Joins & Subqueries
- ACID v BASE
-
NoSQL:
- MongoDB schema design
- when to use SQL & noSQL
- Redis Caching
Below ๐ฝ๐ฝ
| 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 ]
- LinkedIn - arindalchar
- Twitter - arindal_17
