{"id":32518406,"url":"https://github.com/arindal1/sde-dsa-sd-prep","last_synced_at":"2026-07-05T17:31:44.197Z","repository":{"id":310014618,"uuid":"1000299800","full_name":"arindal1/SDE-DSA-SD-Prep","owner":"arindal1","description":"Comprehensive repository to track my progress for SDE preparation, in DSA, System Design and CS Core. Includes Striver, NeetCode, DonneMartin, and more.","archived":false,"fork":false,"pushed_at":"2026-04-17T17:08:13.000Z","size":6562,"stargazers_count":14,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-17T19:14:46.650Z","etag":null,"topics":["algorithms","cpp","data","data-structures","datastructures-algorithms","neetcode","sde-prep","striver","strivers-sde-sheet","system-design"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arindal1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-11T15:04:51.000Z","updated_at":"2026-04-17T17:08:18.000Z","dependencies_parsed_at":"2025-08-15T07:14:16.698Z","dependency_job_id":"cb4dad91-670c-4e41-95cc-b90832d4d86e","html_url":"https://github.com/arindal1/SDE-DSA-SD-Prep","commit_stats":null,"previous_names":["arindal1/sde-dsa-sd-prep"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arindal1/SDE-DSA-SD-Prep","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arindal1%2FSDE-DSA-SD-Prep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arindal1%2FSDE-DSA-SD-Prep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arindal1%2FSDE-DSA-SD-Prep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arindal1%2FSDE-DSA-SD-Prep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arindal1","download_url":"https://codeload.github.com/arindal1/SDE-DSA-SD-Prep/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arindal1%2FSDE-DSA-SD-Prep/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35163846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","cpp","data","data-structures","datastructures-algorithms","neetcode","sde-prep","striver","strivers-sde-sheet","system-design"],"created_at":"2025-10-28T03:38:38.137Z","updated_at":"2026-07-05T17:31:44.190Z","avatar_url":"https://github.com/arindal1.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\" margin= \"16px 0\"\u003e\n  \u003cimg src=\"public/images/sdep.png\"\u003e\n\n  \u003cdiv style=\"display:inline-flex; gap:8px; flex-wrap:wrap; align-items:center; justify-content:center;\"\u003e\n    \u003ca href=\"https://github.com/arindal1/SDE-DSA-SD-Prep/stargazers\" target=\"_blank\" rel=\"noopener\"\u003e\n      \u003cimg alt=\"Repo Stars\"\n           src=\"https://img.shields.io/github/stars/arindal1/SDE-DSA-SD-Prep?style=flat-square\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/arindal1/SDE-DSA-SD-Prep/forks\" target=\"_blank\" rel=\"noopener\"\u003e\n      \u003cimg alt=\"Forks\"\n           src=\"https://img.shields.io/github/forks/arindal1/SDE-DSA-SD-Prep?style=flat-square\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/arindal1/SDE-DSA-SD-Prep/commits/main\" target=\"_blank\" rel=\"noopener\"\u003e\n      \u003cimg alt=\"Last Commit\"\n           src=\"https://img.shields.io/github/last-commit/arindal1/SDE-DSA-SD-Prep?style=flat-square\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.linkedin.com/in/arindalchar/\" onclick=\"return false;\"\u003e\n      \u003cimg alt=\"Made with Love\"\n           src=\"https://img.shields.io/badge/Made%20with-%F0%9F%96%A4-red?style=flat-square\"\u003e\n    \u003c/a\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\nWelcome 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**.\n\nEach 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.\n\n📌 **DSA Sources**: [Striver's A2Z](https://takeuforward.org/dsa/strivers-a2z-sheet-learn-dsa-a-to-z) , [NeetCode 150](https://neetcode.io/practice?tab=neetcode150) , [Blind 75](https://leetcode.com/problem-list/oizxjoit/) , [Top Interview 150](https://leetcode.com/studyplan/top-interview-150/) \u003cbr\u003e\n📌 **System Design Sources**: [System Design Primer](https://github.com/donnemartin/system-design-primer)\n\n---\n\n## 📁 Data Structures and Algorithms\n\n[ 📄 `.md` files for explanation | 💻 `.cpp` files for code implementation ]\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🧠 Basics\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 📘 1. Maths      | Count the Digits                    | [📄 MD](./01.Basics/1.Maths/1.CountTheDigits.md)       | –                                                       |\n| 📘 1. Maths      | Reverse a Number                    | [📄 MD](./01.Basics/1.Maths/2.ReverseNumber.md)        | –                                                       |\n| 📘 1. Maths      | Palindrome Number                   | [📄 MD](./01.Basics/1.Maths/3.PalindromeNumber.md)     | –                                                       |\n| 📘 1. Maths      | GCD                                 | [📄 MD](./01.Basics/1.Maths/4.GCD.md)                  | –                                                       |\n| 📘 1. Maths      | Armstrong Number                    | [📄 MD](./01.Basics/1.Maths/5.Armstrong%20Number.md)   | –                                                       |\n| 📘 1. Maths      | All Divisors                        | [📄 MD](./01.Basics/1.Maths/6.AllDivisors.md)          | –                                                       |\n| 📘 1. Maths      | Check Prime                         | [📄 MD](./01.Basics/1.Maths/7.CheckPrime.md)           | –                                                       |\n| | | | | |\n| 🔁 2. Recursion  | Print N Names                       | [📄 MD](./01.Basics/2.Recursion/1.N-Names.md)          | [💻 CPP](./01.Basics/2.Recursion/1.N-Names.cpp)          |\n| 🔁 2. Recursion  | 1 to N                              | [📄 MD](./01.Basics/2.Recursion/2.1-N.md)              | [💻 CPP](./01.Basics/2.Recursion/2.1-N.cpp)              |\n| 🔁 2. Recursion  | N to 1                              | [📄 MD](./01.Basics/2.Recursion/3.N-1.md)              | [💻 CPP](./01.Basics/2.Recursion/3.N-1.cpp)              |\n| 🔁 2. Recursion  | Sum of N                            | [📄 MD](./01.Basics/2.Recursion/4.SumOfN.md)           | [💻 CPP](./01.Basics/2.Recursion/4.SumOfN.cpp)           |\n| 🔁 2. Recursion  | Factorial of N                      | [📄 MD](./01.Basics/2.Recursion/5.FactofN.md)          | [💻 CPP](./01.Basics/2.Recursion/5.FactofN.cpp)          |\n| 🔁 2. Recursion  | Reverse Array                       | [📄 MD](./01.Basics/2.Recursion/6.RevArray.md)         | [💻 CPP](./01.Basics/2.Recursion/6.RevArray.cpp)         |\n| 🔁 2. Recursion  | Palindrome String                   | [📄 MD](./01.Basics/2.Recursion/7.StringPalin.md)      | [💻 CPP](./01.Basics/2.Recursion/7.StringPalin.cpp)      |\n| 🔁 2. Recursion  | Fibonacci                           | [📄 MD](./01.Basics/2.Recursion/8.Fibonacci.md)        | [💻 CPP](./01.Basics/2.Recursion/8.Fibonacci.cpp)        |\n| | | | | |\n| 🔐 3. Hashing    | Frequency of Array Elements         | [📄 MD](./01.Basics/3.Hashing/1.FreqOfArrayEl.md)      | [💻 CPP](./01.Basics/3.Hashing/1.FreqOfArrayEl.cpp)      |\n| 🔐 3. Hashing    | Highest \u0026 Lowest Freq Element       | [📄 MD](./01.Basics/3.Hashing/2.HighLowFreqEl.md)      | [💻 CPP](./01.Basics/3.Hashing/2.HighLowFreqEl.cpp)      |\n| 🔐 3. Hashing    | First Unique Character              | [📄 MD](./01.Basics/3.Hashing/3.FirstUnique.md)        | [💻 CPP](./01.Basics/3.Hashing/3.FirstUnique.cpp)        |\n| 🔐 3. Hashing    | Find Difference                     | [📄 MD](./01.Basics/3.Hashing/4.FindDifference.md)     | [💻 CPP](./01.Basics/3.Hashing/4.FindDifference.cpp)     |\n| 🔐 3. Hashing    | Find Duplicates                     | [📄 MD](./01.Basics/3.Hashing/5.FindDuplicates.md)     | [💻 CPP](./01.Basics/3.Hashing/5.FindDuplicates.cpp)     |\n| 🔐 3. Hashing    | Is Anagram                          | [📄 MD](./01.Basics/3.Hashing/6.IsAnagram.md)          | [💻 CPP](./01.Basics/3.Hashing/6.IsAnagram.cpp)          |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🔢 Sorting\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 📑 1. Elementary | Selection Sort                      | [📄 MD](./02.Sorting/1.Sorting/1.SelectionSort.md)     | [💻 CPP](./02.Sorting/1.Sorting/1.SelectionSort.cpp)     |\n| 📑 1. Elementary | Bubble Sort                         | [📄 MD](./02.Sorting/1.Sorting/2.BubbleSort.md)        | [💻 CPP](./02.Sorting/1.Sorting/2.BubbleSort.cpp)        |\n| 📑 1. Elementary | Insertion Sort                      | [📄 MD](./02.Sorting/1.Sorting/3.InsertionSort.md)     | [💻 CPP](./02.Sorting/1.Sorting/3.InsertionSort.cpp)     |\n| | | | | |\n| 📈 2. Advanced   | Merge Sort                          | [📄 MD](./02.Sorting/2.Sorting/1.MergeSort.md)         | [💻 CPP](./02.Sorting/2.Sorting/1.MergeSort.cpp)         |\n| 📈 2. Advanced   | Quick Sort                          | [📄 MD](./02.Sorting/2.Sorting/2.QuickSort.md)         | [💻 CPP](./02.Sorting/2.Sorting/2.QuickSort.cpp)         |\n| 📈 2. Advanced   | Heap Sort                          | [📄 MD](./02.Sorting/2.Sorting/3.HeapSort.md)         | [💻 CPP](./02.Sorting/2.Sorting/3.HeapSort.cpp)         |\n| 📈 2. Advanced   | Radix Sort                          | [📄 MD](./02.Sorting/2.Sorting/4.RadixSort.md)         | [💻 CPP](./02.Sorting/2.Sorting/4.RadixSort.cpp)         |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e♠️ Arrays\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 📑 1. Easy       | Largest Element in the Array        | [📄 MD](./03.Arrays/1.Easy/1.LargestElement.md)        | [💻 CPP](./03.Arrays/1.Easy/1.LargestElement.cpp)        |\n| 📑 1. Easy       | Second Largest Element in the Array | [📄 MD](./03.Arrays/1.Easy/2.SecondLargestElement.md)  | [💻 CPP](./03.Arrays/1.Easy/2.SecondLargestElement.cpp)  |\n| 📑 1. Easy       | Is Array Sorted?                    | [📄 MD](./03.Arrays/1.Easy/3.IsArraySorted.md)         | [💻 CPP](./03.Arrays/1.Easy/3.IsArraySorted.cpp)         |\n| 📑 1. Easy       | Remove Duplicates from Array        | [📄 MD](./03.Arrays/1.Easy/4.RemoveDuplicates.md)      | [💻 CPP](./03.Arrays/1.Easy/4.RemoveDuplicates.cpp)      |\n| 📑 1. Easy       | Left Rotate by One                  | [📄 MD](./03.Arrays/1.Easy/5.LeftRotateArrayByOne.md)  | [💻 CPP](./03.Arrays/1.Easy/5.LeftRotateArrayByOne.cpp)  |\n| 📑 1. Easy       | Rotate Array by K Places            | [📄 MD](./03.Arrays/1.Easy/6.RotateArrayByKPlaces.md)  | [💻 CPP](./03.Arrays/1.Easy/6.RotateArrayByKPlaces.cpp)  |\n| 📑 1. Easy       | Shift Zeros to End                  | [📄 MD](./03.Arrays/1.Easy/7.ShiftZerosToEnd.md)       | [💻 CPP](./03.Arrays/1.Easy/7.ShiftZerosToEnd.cpp)       |\n| 📑 1. Easy       | Linear Search                       | [📄 MD](./03.Arrays/1.Easy/8.LinearSearch.md)          | [💻 CPP](./03.Arrays/1.Easy/8.LinearSearch.cpp)          |\n| 📑 1. Easy       | Find The Union                      | [📄 MD](./03.Arrays/1.Easy/9.1.FindTheUnion.md)        | [💻 CPP](./03.Arrays/1.Easy/9.1.FindTheUnion.cpp)        |\n| 📑 1. Easy       | Find The Intersection               | [📄 MD](./03.Arrays/1.Easy/9.2.FindTheIntersection.md) | [💻 CPP](./03.Arrays/1.Easy/9.2.FindTheIntersection.cpp) |\n| 📑 1. Easy       | Find The Missing Number             | [📄 MD](./03.Arrays/1.Easy/10.FindTheMissingNumber.md) | [💻 CPP](./03.Arrays/1.Easy/10.FindTheMissingNumber.cpp) |\n| 📑 1. Easy       | Max Consecutive Ones                 | [📄 MD](./03.Arrays/1.Easy/11.MaxConsecutiveOnes.md) | [💻 CPP](./03.Arrays/1.Easy/11.MaxConsecutiveOnes.cpp) |\n| 📑 1. Easy       | Number that Appears Once                 | [📄 MD](./03.Arrays/1.Easy/12.NumberThatAppearsOnce.md) | [💻 CPP](./03.Arrays/1.Easy/12.NumberThatAppearsOnce.cpp) |\n| 📑 1. Easy       | Longest Subarray with Sum K                 | [📄 MD](./03.Arrays/1.Easy/13.LongestSubarrayWithSumK.md) | [💻 CPP](./03.Arrays/1.Easy/13.LongestSubarrayWithSumK.cpp) |\n| 📑 1. Easy       | Remove K From Array                 | [📄 MD](./03.Arrays/1.Easy/15.RemoveValueFromArray.md) | [💻 CPP](./03.Arrays/1.Easy/15.RemoveValueFromArray.cpp) |\n| 📑 1. Easy       | One Plus                 | [📄 MD](./03.Arrays/1.Easy/14.OnePlus.md) | [💻 CPP](./03.Arrays/1.Easy/14.OnePlus.cpp) |\n| 📑 1. Easy       | Remove Value From Array                 | [📄 MD](./03.Arrays/1.Easy/15.RemoveValueFromArray.md) | [💻 CPP](./03.Arrays/1.Easy/15.RemoveValueFromArray.cpp) |\n| 📑 1. Easy       | Container With Most Water                 | [📄 MD](./03.Arrays/1.Easy/16.ContainerWithMostWater.md) | [💻 CPP](./03.Arrays/1.Easy/16.ContainerWithMostWater.cpp) |\n| 📑 1. Easy       | Move Zeros To End                 | [📄 MD](./03.Arrays/1.Easy/17.MoveZerosToEnd.md) | [💻 CPP](./03.Arrays/1.Easy/17.MoveZerosToEnd.cpp) |\n| | | | | |\n| 📃 2. Medium       | Two Sum                 | [📄 MD](./03.Arrays/2.Medium/1.2Sum.md) | [💻 CPP](./03.Arrays/2.Medium/1.2Sum.cpp) |\n| 📃 2. Medium       | Sort an Array of 0s, 1s \u0026 2s                | [📄 MD](./03.Arrays/2.Medium/2.SortArrayOf012.md) | [💻 CPP](./03.Arrays/2.Medium/2.SortArrayOf012.cpp) |\n| 📃 2. Medium       | Majority Element - I [\u003e n/2]                | [📄 MD](./03.Arrays/2.Medium/3.MajorityElement.md) | [💻 CPP](./03.Arrays/2.Medium/3.MajorityElement.cpp) |\n| 📃 2. Medium       | Maximum Sub-Array Sum                | [📄 MD](./03.Arrays/2.Medium/4.MaxSubarraySum.md) | [💻 CPP](./03.Arrays/2.Medium/4.MaxSubarraySum.cpp) |\n| 📃 2. Medium       | Best Time to Buy and Sell Stock                | [📄 MD](./03.Arrays/2.Medium/5.BuyAndSellStock.md) | [💻 CPP](./03.Arrays/2.Medium/5.BuyAndSellStock.cpp) |\n| 📃 2. Medium       | Rearrange Elements by Sign [Alternating]                | [📄 MD](./03.Arrays/2.Medium/6.RearrangeElementsBySign.md) | [💻 CPP](./03.Arrays/2.Medium/6.RearrangeElementsBySign.cpp) |\n| 📃 2. Medium       | Next Permutation                | [📄 MD](./03.Arrays/2.Medium/7.NextPermutation.md) | [💻 CPP](./03.Arrays/2.Medium/7.NextPermutation.cpp) |\n| 📃 2. Medium       | Leaders in an Array                | [📄 MD](./03.Arrays/2.Medium/8.LeadersInAnArray.md) | [💻 CPP](./03.Arrays/2.Medium/8.LeadersInAnArray.cpp) |\n| 📃 2. Medium       | Longest Consecutive Sequence                | [📄 MD](./03.Arrays/2.Medium/9.LongestConsecutiveSequence.md) | [💻 CPP](./03.Arrays/2.Medium/9.LongestConsecutiveSequence.cpp) |\n| 📃 2. Medium       | Set Matrix Zeros                | [📄 MD](./03.Arrays/2.Medium/10.SetMatrixToZeros.md) | [💻 CPP](./03.Arrays/2.Medium/10.SetMatrixToZeros.cpp) |\n| 📃 2. Medium       | Rotate Matrix By 90 Degrees                | [📄 MD](./03.Arrays/2.Medium/11.RotateMatrixBy90.md) | [💻 CPP](./03.Arrays/2.Medium/11.RotateMatrixBy90.cpp) |\n| 📃 2. Medium       | Matrix Spiral Traversal                | [📄 MD](./03.Arrays/2.Medium/12.MatrixSpiralTraversal.md) | [💻 CPP](./03.Arrays/2.Medium/12.MatrixSpiralTraversal.cpp) |\n| 📃 2. Medium       | Sub Arrays With Sum K                | [📄 MD](./03.Arrays/2.Medium/13.SubArraysWithSumK.md) | [💻 CPP](./03.Arrays/2.Medium/13.SubArraysWithSumK.cpp) |\n| 📃 2. Medium       | Partition Labels                | [📄 MD](./03.Arrays/2.Medium/15.PartitionLabels.md) | [💻 CPP](./03.Arrays/2.Medium/15.PartitionLabels.cpp) |\n| 📃 2. Medium       | Sorted Array Squares                | [📄 MD](./03.Arrays/2.Medium/16.SortedArraySquares.md) | [💻 CPP](./03.Arrays/2.Medium/16.SortedArraySquares.cpp) |\n| 📃 2. Medium       | Boats To Save People                | [📄 MD](./03.Arrays/2.Medium/17.BoatsToSavePeople.md) | [💻 CPP](./03.Arrays/2.Medium/17.BoatsToSavePeople.cpp) |\n| 📃 2. Medium       | Simple Bank System                | [📄 MD](./03.Arrays/2.Medium/18.SimpleBankSystem.md) | [💻 CPP](./03.Arrays/2.Medium/18.SimpleBankSystem.cpp) |\n| 📃 2. Medium       | Laser Beams in a Bank                | [📄 MD](./03.Arrays/2.Medium/19.LaserBeamsInABank.md) | [💻 CPP](./03.Arrays/2.Medium/19.LaserBeamsInABank.cpp) |\n| 📃 2. Medium       | Count Ungaurded Cells                | [📄 MD](./03.Arrays/2.Medium/20.CountUngaurdedCells.md) | [💻 CPP](./03.Arrays/2.Medium/20.CountUnguardedCells.cpp) |\n| | | | | |\n| 📜 2. Hard       | Pascal's Triangle                | [📄 MD](./03.Arrays/3.Hard/1.PascalsTriangle.md) | [💻 CPP](./03.Arrays/3.Hard/1.PascalsTriangle.cpp) |\n| 📜 2. Hard       | Majority Element - II [\u003e n/3]                | [📄 MD](./03.Arrays/3.Hard/2.MajorityElementII.md) | [💻 CPP](./03.Arrays/3.Hard/2.MajorityElementII.cpp) |\n| 📜 2. Hard       | Three Sum                | [📄 MD](./03.Arrays/3.Hard/3.ThreeSum.md) | [💻 CPP](./03.Arrays/3.Hard/3.ThreeSum.cpp) |\n| 📜 2. Hard       | Four Sum                | [📄 MD](./03.Arrays/3.Hard/4.FourSum.md) | [💻 CPP](./03.Arrays/3.Hard/4.FourSum.cpp) |\n| 📜 2. Hard       | Count Subarrays with Xor K               | [📄 MD](./03.Arrays/3.Hard/5.CountSubarraysWithXorK.md) | [💻 CPP](./03.Arrays/3.Hard/5.CountSubarraysWithXorK.cpp) |\n| 📜 2. Hard       | Merge Overlapping Intervals                | [📄 MD](./03.Arrays/3.Hard/6.MergeOverlappingIntervals.md) | [💻 CPP](./03.Arrays/3.Hard/6.MergeOverlappingIntervals.cpp) |\n| 📜 2. Hard       | Merge Sorted Arrays                | [📄 MD](./03.Arrays/3.Hard/7.MergeSortedArrays.md) | [💻 CPP](./03.Arrays/3.Hard/7.MergeSortedArrays.cpp) |\n| 📜 2. Hard       | Find Repeating and Missing Numbers                | [📄 MD](./03.Arrays/3.Hard/8.FindRepeatingAndMissingNumbers.md) | [💻 CPP](./03.Arrays/3.Hard/8.FindRepeatingAndMissingNumbers.cpp) |\n| 📜 2. Hard       | Count Inversions                | [📄 MD](./03.Arrays/3.Hard/9.CountInversions.md) | [💻 CPP](./03.Arrays/3.Hard/9.CountInversions.cpp) |\n| 📜 2. Hard       | Reverse Pairs                | [📄 MD](./03.Arrays/3.Hard/10.ReversePairs.md) | [💻 CPP](./03.Arrays/3.Hard/10.ReversePairs.cpp) |\n| 📜 2. Hard       | Maximum Product Subarray                | [📄 MD](./03.Arrays/3.Hard/11.MaximumProductSubarray.md) | [💻 CPP](./03.Arrays/3.Hard/11.MaximumProductSubarray.cpp) |\n| 📜 2. Hard       | Product of Array except Self                | [📄 MD](./03.Arrays/3.Hard/12.ProductOfArrayExceptSelf.md) | [💻 CPP](./03.Arrays/3.Hard/12.ProductOfArrayExceptSelf.cpp) |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🔍 Binary Search\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| ⁉️ 3. BS on 1D       | Binary Search on Sorted Array                | [📄 MD](./04.Binary_Search/1.BSon1D/1.BinarySearchOnASortedArray.md)   | [💻 CPP](./04.Binary_Search/1.BSon1D/1.BinarySearchOnASortedArray.cpp)   |\n| ⁉️ 3. BS on 1D       | Search Insert Position                | [📄 MD](./04.Binary_Search/1.BSon1D/2.SearchInsertPosition.md)   | [💻 CPP](./04.Binary_Search/1.BSon1D/2.SearchInsertPosition.cpp)   |\n| ⁉️ 3. BS on 1D       | First and Last Occurance in a Sorted Array                | [📄 MD](./04.Binary_Search/1.BSon1D/3.FirstAndLastOccurance.md)   | [💻 CPP](./04.Binary_Search/1.BSon1D/3.FirstAndLastOccurance.cpp)   |\n| ⁉️ 3. BS on 1D       | Search in a Rotated Sorted Array - I              | [📄 MD](./04.Binary_Search/1.BSon1D/4.SearchInRotatedSortedArrayI.md)   | [💻 CPP](./04.Binary_Search/1.BSon1D/4.SearchInRotatedSortedArrayI.cpp)   |\n| ⁉️ 3. BS on 1D       | Search in a Rotated Sorted Array - II              | [📄 MD](./04.Binary_Search/1.BSon1D/5.SearchInRotatedSortedArrayII.md)   | [💻 CPP](./04.Binary_Search/1.BSon1D/5.SearchInRotatedSortedArrayII.cpp)   |\n| ⁉️ 3. BS on 1D       | Minimum in Rotated Sorted Array              | [📄 MD](./04.Binary_Search/1.BSon1D/6.MinimumInRotatedSortedArray.md)   | [💻 CPP](./04.Binary_Search/1.BSon1D/6.MinimumInRotatedSortedArray.cpp)   |\n| ⁉️ 3. BS on 1D       | Single Element in a Sorted Array              | [📄 MD](./04.Binary_Search/1.BSon1D/7.SingleElementInASortedArray.md)   | [💻 CPP](./04.Binary_Search/1.BSon1D/7.SingleElementInASortedArray.cpp)   |\n| ⁉️ 3. BS on 1D       | Find Peak Element - I              | [📄 MD](./04.Binary_Search/1.BSon1D/8.FindPeakElement.md)   | [💻 CPP](./04.Binary_Search/1.BSon1D/8.FindPeakElement.cpp)   |\n| ⁉️ 3. BS on 1D       | Arranging Coins              | [📄 MD](./04.Binary_Search/1.BSon1D/9.ArrangingCoins.md)   | [💻 CPP](./04.Binary_Search/1.BSon1D/9.ArrangingCoins.cpp)   |\n| ⁉️ 3. BS on 1D       | First Bad Version              | [📄 MD](./04.Binary_Search/1.BSon1D/10.FirstBadVersion.md)   | [💻 CPP](./04.Binary_Search/1.BSon1D/10.FirstBadVersion.cpp)   |\n| | | | | |\n| ‼️ 2. BS on Answers  | Koko Eating Bananas                | [📄 MD](./04.Binary_Search/2.BSonAnswers/1.KokoEatingBananas.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/1.KokoEatingBananas.cpp) |\n| ‼️ 2. BS on Answers  | Days to make M Bouquets                | [📄 MD](./04.Binary_Search/2.BSonAnswers/2.DaysToMakeBouquets.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/2.DaysToMakeBouquets.cpp) |\n| ‼️ 2. BS on Answers  | Smallest Divisor within the Threshold                | [📄 MD](./04.Binary_Search/2.BSonAnswers/3.SmallestDivisorInThreshold.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/3.SmallestDivisorInThreshold.cpp) |\n| ‼️ 2. BS on Answers  | Capacity to Ship within D Days                | [📄 MD](./04.Binary_Search/2.BSonAnswers/4.CapacityToShipWithinDDays.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/4.CapacityToShipWithinDDays.cpp) |\n| ‼️ 2. BS on Answers  | Find the K-th Missing Element                | [📄 MD](./04.Binary_Search/2.BSonAnswers/5.FindKthMissingElement.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/5.FindKthMissingElement.cpp) |\n| ‼️ 2. BS on Answers  | Aggressive Cows               | [📄 MD](./04.Binary_Search/2.BSonAnswers/6.AggressiveCows.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/6.AggressiveCows.cpp) |\n| ‼️ 2. BS on Answers  | Book Allocation                | [📄 MD](./04.Binary_Search/2.BSonAnswers/7.BookAllocation.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/7.BookAllocation.cpp) |\n| ‼️ 2. BS on Answers  | Split Array to Largest Sum                | [📄 MD](./04.Binary_Search/2.BSonAnswers/8.SplitArrayLargestSum.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/8.SplitArrayLargestSum.cpp) |\n| ‼️ 2. BS on Answers  | Minimize Max Distance between Gas Stations                | [📄 MD](./04.Binary_Search/2.BSonAnswers/9.MinimizeMaxDistanceStations.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/9.MinimizeMaxDistanceStations.cpp) |\n| ‼️ 2. BS on Answers  | Median of Two Sorted Arrays                | [📄 MD](./04.Binary_Search/2.BSonAnswers/10.MedianOfTwoSortedArrays.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/10.MedianOfTwoSortedArrays.cpp) |\n| ‼️ 2. BS on Answers  | Time Map                | [📄 MD](./04.Binary_Search/2.BSonAnswers/11.TimeMap.md) | [💻 CPP](./04.Binary_Search/2.BSonAnswers/11.TimeMap.cpp) |\n| | | | | |\n| ⁉️ 3. BS on 2D       | Row with Maximum 1s                | [📄 MD](./04.Binary_Search/3.BSon2D/1.RowWithMaximum1s.md)   | [💻 CPP](./04.Binary_Search/3.BSon2D/1.RowWithMaximum1s.cpp)   |\n| ⁉️ 3. BS on 2D       | Search in a 2D Matrix - I                | [📄 MD](./04.Binary_Search/3.BSon2D/2.SearchInA2DMatrixI.md)   | [💻 CPP](./04.Binary_Search/3.BSon2D/2.SearchInA2DMatrixI.cpp)   |\n| ⁉️ 3. BS on 2D       | Search in a 2D Matrix - II                | [📄 MD](./04.Binary_Search/3.BSon2D/3.SearchInA2DMatrixII.md)   | [💻 CPP](./04.Binary_Search/3.BSon2D/3.SearchInA2DMatrixII.cpp)   |\n| ⁉️ 3. BS on 2D       | Find Peak Element - II                | [📄 MD](./04.Binary_Search/3.BSon2D/4.FindPeakElementII.md)   | [💻 CPP](./04.Binary_Search/3.BSon2D/4.FindPeakElementII.cpp)   |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🧵 Strings\u003c/h3\u003e\u003c/summary\u003e\n\n  \n\n\u003cbr\u003e\n\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 🐕 Easy      | Remove Outer Parenthesis                | [📄 MD](./05.Strings/1.Easy/1.RemoveOuterParanthesis.md)   | [💻 CPP](./05.Strings/1.Easy/1.RemoveOuterParanthesis.cpp)   |\n| 🐕 Easy      | Largest Odd Number                | [📄 MD](./05.Strings/1.Easy/3.LargestOddNumber.md)   | [💻 CPP](./05.Strings/1.Easy/3.LargestOddNumber.cpp)   |\n| 🐕 Easy      | Longest Common Prefix                | [📄 MD](./05.Strings/1.Easy/4.LongestCommonPrefix.md)   | [💻 CPP](./05.Strings/1.Easy/4.LongestCommonPrefix.cpp)   |\n| 🐕 Easy      | Isomorphic Strings               | [📄 MD](./05.Strings/1.Easy/5.IsomorphicStrings.md)   | [💻 CPP](./05.Strings/1.Easy/5.IsomorphicStrings.cpp)   |\n| 🐕 Easy      | Rotate String                | [📄 MD](./05.Strings/1.Easy/6.RotateString.md)   | [💻 CPP](./05.Strings/1.Easy/6.RotateString.cpp)   |\n| 🐕 Easy      | Is Anagram ?                | [📄 MD](./05.Strings/1.Easy/7.IsAnagram.md)   | [💻 CPP](./05.Strings/1.Easy/7.IsAnagram.cpp)   |\n| 🐕 Easy      | Valid Palindrome                | [📄 MD](./05.Strings/1.Easy/8.ValidPalindrome.md)   | [💻 CPP](./05.Strings/1.Easy/8.ValidPalindrome.cpp)   |\n| | | | | |\n| 🐈 Medium       | Frequency Sort                | [📄 MD](./05.Strings/2.Medium/1.FrequencySort.md)   | [💻 CPP](./05.Strings/2.Medium/1.FrequencySort.cpp)   |\n| 🐈 Medium       | Max Depth of Parenthesis                | [📄 MD](./05.Strings/2.Medium/2.MaxDepthOfParenthesis.md)   | [💻 CPP](./05.Strings/2.Medium/2.MaxDepthOfParenthesis.cpp)   |\n| 🐈 Medium       | Roman to Integer                | [📄 MD](./05.Strings/2.Medium/3.RomanToInteger.md)   | [💻 CPP](./05.Strings/2.Medium/3.RomanToInteger.cpp)   |\n| 🐈 Medium       | String to Integer (ATOI)                | [📄 MD](./05.Strings/2.Medium/4.ATOI.md)   | [💻 CPP](./05.Strings/2.Medium/4.ATOI.cpp)   |\n| 🐈 Medium       | Longest Palindrome Substrings                | [📄 MD](./05.Strings/2.Medium/5.LongestPalindromeSubstring.md)   | [💻 CPP](./05.Strings/2.Medium/5.LongestPalindromeSubstring.cpp)   |\n| 🐈 Medium       | Sum of Beauty of Substrings                | [📄 MD](./05.Strings/2.Medium/6.SumOfBeautyOfSubstrings.md)   | [💻 CPP](./05.Strings/2.Medium/6.SumOfBeautyOfSubstrings.cpp)   |\n| 🐈 Medium     | Reverse Words in a String               | [📄 MD](./05.Strings/2.Medium/7.ReverseWords.md)   | [💻 CPP](./05.Strings/2.Medium/7.ReverseWords.cpp)   |\n| 🐈 Medium       | Group Anagrams                | [📄 MD](./05.Strings/2.Medium/9.GroupAnagrams.md)   | [💻 CPP](./05.Strings/2.Medium/9.GroupAnagrams.cpp)   |\n| 🐈 Medium       | Longest Substring without Repeating Char                | [📄 MD](./05.Strings/2.Medium/9.LongestSubstringWithoutRepeatingCharacters.md)   | [💻 CPP](./05.Strings/2.Medium/9.LongestSubstringWithoutRepeatingCharacters.cpp)   |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🔗 Linked Lists\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| ➡️ Singly LL      | Linked List Constructors               | [📄 MD](./06.Linked_List/1.SinglyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/1.SinglyLinkedList/01.1.LLBasic.cpp)   |\n| ➡️ Singly LL      | Array to Linked List               | [📄 MD](./06.Linked_List/1.SinglyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/1.SinglyLinkedList/01.2.Array2LL.cpp)   |\n| ➡️ Singly LL      | Insertion at Head               | [📄 MD](./06.Linked_List/1.SinglyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/1.SinglyLinkedList/02.1.InsertionAtHead.cpp)   |\n| ➡️ Singly LL      | Insertion at Tail               | [📄 MD](./06.Linked_List/1.SinglyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/1.SinglyLinkedList/02.2.InsertionAtTail.cpp)   |\n| ➡️ Singly LL      | Insertion at K               | [📄 MD](./06.Linked_List/1.SinglyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/1.SinglyLinkedList/03.3.DeletionatK.cpp)   |\n| ➡️ Singly LL      | Deletion from Head               | [📄 MD](./06.Linked_List/1.SinglyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/1.SinglyLinkedList/03.1.DeletionFromHead.cpp)   |\n| ➡️ Singly LL      | Deletion from Tail               | [📄 MD](./06.Linked_List/1.SinglyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/1.SinglyLinkedList/03.2.DeletionFromTail.cpp)   |\n| ➡️ Singly LL      | Deletion from K               | [📄 MD](./06.Linked_List/1.SinglyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/1.SinglyLinkedList/03.3.DeletionatK.cpp)   |\n| ➡️ Singly LL      | Length of Linked List               | [📄 MD](./06.Linked_List/1.SinglyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/1.SinglyLinkedList/04.LLLength.cpp)   |\n| ➡️ Singly LL      | Search K in Linked List               | [📄 MD](./06.Linked_List/1.SinglyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/1.SinglyLinkedList/05.SearchInLL.cpp)   |\n| | | | |\n| 🔀 Doubly LL      | Array to DLL              | [📄 MD](./06.Linked_List/2.DoublyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/2.DoublyLinkedList/01.Arr2DLL.cpp)   |\n| 🔀 Doubly LL      | Insertion at Head              | [📄 MD](./06.Linked_List/2.DoublyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/2.DoublyLinkedList/03.1.InsertionAtHead.cpp)   |\n| 🔀 Doubly LL      | Insertion at Tail              | [📄 MD](./06.Linked_List/2.DoublyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/2.DoublyLinkedList/03.2.InsertionAtTail.cpp)   |\n| 🔀 Doubly LL      | Insertion at K              | [📄 MD](./06.Linked_List/2.DoublyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/2.DoublyLinkedList/03.3.InsertAtK.cpp)   |\n| 🔀 Doubly LL      | Deletion from Head              | [📄 MD](./06.Linked_List/2.DoublyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/2.DoublyLinkedList/02.1.DeletionFromHead.cpp)   |\n| 🔀 Doubly LL      | Deletion from Tail              | [📄 MD](./06.Linked_List/2.DoublyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/2.DoublyLinkedList/02.2.DeletionFromTail.cpp)   |\n| 🔀 Doubly LL      | Deletion at K              | [📄 MD](./06.Linked_List/2.DoublyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/2.DoublyLinkedList/02.3.DeletionFromK.cpp)   |\n| 🔀 Doubly LL      | Reverse a Doubly LL              | [📄 MD](./06.Linked_List/2.DoublyLinkedList/README.md)   | [💻 CPP](./06.Linked_List/2.DoublyLinkedList/04.ReverseDLL.cpp)   |\n| | | | |\n| 🎯 Medium Singly LL      | Find the middle of a LL               | [📄 MD](./06.Linked_List/3.MediumLL/01.MiddleOfLL.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/01.MiddleOfLL.cpp)   |\n| 🎯 Medium Singly LL      | Reverse a LL (Iterative)               | [📄 MD](./06.Linked_List/3.MediumLL/02.ReverseLLIterative.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/02.ReverseLLIterative.cpp)   |\n| 🎯 Medium Singly LL      | Reverse a LL (Recursive)               | [📄 MD](./06.Linked_List/3.MediumLL/03.ReverseLLRecursive.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/03.ReverseLLRecursive.cpp)   |\n| 🎯 Medium Singly LL      | Detect a Cyclic Linked List               | [📄 MD](./06.Linked_List/3.MediumLL/04.DetectALoop.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/04.DetectALoop.cpp)   |\n| 🎯 Medium Singly LL      | Find the start of the Loop               | [📄 MD](./06.Linked_List/3.MediumLL/05.StartingPointInLoop.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/05.StartingPointInLoop.cpp)   |\n| 🎯 Medium Singly LL      | Find the length of the Loop               | [📄 MD](./06.Linked_List/3.MediumLL/06.LengthOfLoop.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/06.LengthOfLoop.cpp)   |\n| 🎯 Medium Singly LL      | Palindrome Linked List               | [📄 MD](./06.Linked_List/3.MediumLL/07.PalindromeLL.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/07.PalindromeLL.cpp)   |\n| 🎯 Medium Singly LL      | Odd Even Linked List              | [📄 MD](./06.Linked_List/3.MediumLL/08.OddEvenLL.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/08.OddEvenLL.cpp)   |\n| 🎯 Medium Singly LL      | Delete Nth Node from Back              | [📄 MD](./06.Linked_List/3.MediumLL/09.DeleteNthNodeFromTheBack.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/09.DeleteNthNodeFromTheBack.cpp)   |\n| 🎯 Medium Singly LL      | Delete Middle Note               | [📄 MD](./06.Linked_List/3.MediumLL/10.DeleteMiddleNote.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/10.DeleteMiddleNote.cpp)   |\n| 🎯 Medium Singly LL      | Sort Linked List               | [📄 MD](./06.Linked_List/3.MediumLL/11.SortLinkedList.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/11.SortLinkedList.cpp)   |\n| 🎯 Medium Singly LL      | Intersection of Two LLs               | [📄 MD](./06.Linked_List/3.MediumLL/12.IntersectionOfLLs.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/12.IntersectionOfLLs.cpp)   |\n| 🎯 Medium Singly LL      | Add 1 to a number in LL               | [📄 MD](./06.Linked_List/3.MediumLL/13.Add1toLL.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/13.Add1toLL.cpp)   |\n| 🎯 Medium Singly LL      | Add two numbers in LL               | [📄 MD](./06.Linked_List/3.MediumLL/14.AddTwoNummbersLL.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/14.AddTwoNummbersLL.cpp)   |\n| 🎯 Medium Singly LL      | Swap Pairs               | [📄 MD](./06.Linked_List/3.MediumLL//15.SwapPairs.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/15.SwapPairs.cpp)   |\n| 🎯 Medium Singly LL      | Merge Inbetween Zeros               | [📄 MD](./06.Linked_List/3.MediumLL/16.MergeInbetweenZeros.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/16.MergeInbetweenZeros.cpp)   |\n| 🎯 Medium Singly LL      | Delete Nodes present in an Array               | [📄 MD](./06.Linked_List/3.MediumLL/17.DeleteNodesPresentInArray.md)   | [💻 CPP](./06.Linked_List/3.MediumLL/17.DeleteNodesPresentInArray.cpp)   |\n| | | | |\n| 🌀 Medium Doubly LL      | Delete all occurance of Key               | [📄 MD](./06.Linked_List/4.MediumDLL/01.DeleteAllKeys.md)   | [💻 CPP](./06.Linked_List/4.MediumDLL/01.DeleteAllKeys.cpp)   |\n| 🌀 Medium Doubly LL      | Pairs with given Sum in DLL               | [📄 MD](./06.Linked_List/4.MediumDLL/02.PairsWithGivenSum.md)   | [💻 CPP](./06.Linked_List/4.MediumDLL/02.PairsWithGivenSum.cpp)   |\n| 🌀 Medium Doubly LL      | Remove Duplicates from a DLL        | [📄 MD](./06.Linked_List/4.MediumDLL/03.RemoveDuplicates.md)   | [💻 CPP](./06.Linked_List/4.MediumDLL/03.RemoveDuplicates.cpp)   |\n| | | | |\n| 💀 Hard Singly LL      | Reverse LL in a Group               | [📄 MD](./06.Linked_List/5.HardLL/01.ReveseLLGroup.md)   | [💻 CPP](./06.Linked_List/5.HardLL/01.ReveseLLGroup.cpp)   |\n| 💀 Hard Singly LL      | Rotate a LL               | [📄 MD](./06.Linked_List/5.HardLL/02.RotateList.md)   | [💻 CPP](./06.Linked_List/5.HardLL/02.RotateList.cpp)   |\n| 💀 Hard Singly LL      | Merge 2 Sorted LLs               | [📄 MD](./06.Linked_List/5.HardLL/03.MergeTwoSortedLL.md)   | [💻 CPP](./06.Linked_List/5.HardLL/03.MergeTwoSortedLL.cpp)   |\n| 💀 Hard Singly LL      | Merge K sorted LLs               | [📄 MD](./06.Linked_List/5.HardLL/04.MergeKSortedLists.md)   | [💻 CPP](./06.Linked_List/5.HardLL/04.MergeKSortedLists.cpp)   |\n| 💀 Hard Singly LL      | Clone a LL               | [📄 MD](./06.Linked_List/5.HardLL/05.CloneLL.md)   | [💻 CPP](./06.Linked_List/5.HardLL/05.CloneLL.cpp)   |\n| 💀 Hard Singly LL      | Browser History               | [📄 MD](./06.Linked_List/5.HardLL/06.BrowserHistory.md)   | [💻 CPP](./06.Linked_List/5.HardLL/06.BrowserHistory.cpp)   |\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🔁 Recursion\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 🙃 Basics | AOTI | [📄 MD](./07.Recursion/1.Basics/01.AOTI.md)   | [💻 CPP](./07.Recursion/1.Basics/01.AOTI.cpp)   |\n| 🙃 Basics | Pow (x, n) | [📄 MD](./07.Recursion/1.Basics/)   | [💻 CPP](./07.Recursion/1.Basics/02.Pow.cpp)   |\n| 🙃 Basics | Good Numbers | [📄 MD](public/images/under_construction.png)   | [💻 CPP](public/images/under_construction.png)   |\n| 🙃 Basics | Sort Stack | [📄 MD](public/images/under_construction.png)   | [💻 CPP](public/images/under_construction.png)   |\n| 🙃 Basics | Reverse Stack | [📄 MD](./07.Recursion/1.Basics/)   | [💻 CPP](./07.Recursion/1.Basics/04.ReverseStack.cpp)   |\n| |\n| 🫨 Subsquences | Generate Binary Strings | [📄 MD](public/images/under_construction.png)   | [💻 CPP](public/images/under_construction.png)   |\n| 🫨 Subsquences | Generate Paranthesis | [📄 MD](./07.Recursion/2.Subsequence/02.GenerateParanthesis.md)   | [💻 CPP](./07.Recursion/2.Subsequence/02.GenerateParanthesis.cpp)   |\n| 🫨 Subsquences | Power Set | [📄 MD](public/images/under_construction.png)   | [💻 CPP](public/images/under_construction.png)   |\n| 🫨 Subsquences | Subsequences with Sum K | [📄 MD](public/images/under_construction.png)   | [💻 CPP](public/images/under_construction.png)   |\n| 🫨 Subsquences | Subsequences with Sum K - II | [📄 MD](public/images/under_construction.png)   | [💻 CPP](public/images/under_construction.png)   |\n| 🫨 Subsquences | Combination Sum | [📄 MD](./07.Recursion/2.Subsequence/07.CombinationSum.md)   | [💻 CPP](./07.Recursion/2.Subsequence/07.CombinationSum.cpp)   |\n| 🫨 Subsquences | Combination Sum - II | [📄 MD](./07.Recursion/2.Subsequence/08.CombinationSumII.md)   | [💻 CPP](./07.Recursion/2.Subsequence/08.CombinationSumII.cpp)   |\n| 🫨 Subsquences | Subsets | [📄 MD](./07.Recursion/2.Subsequence/09.SubsetSum.md)   | [💻 CPP](./07.Recursion/2.Subsequence/09.SubsetSum.cpp)   |\n| 🫨 Subsquences | Subsets - II | [📄 MD](./07.Recursion/2.Subsequence/10.SubsetSumII.md)   | [💻 CPP](./07.Recursion/2.Subsequence/10.SubsetSumII.cpp)   |\n| 🫨 Subsquences | Combination Sum - III | [📄 MD](./07.Recursion/2.Subsequence/09.SubsetSum.md)   | [💻 CPP](./07.Recursion/2.Subsequence/10.SubsetSumII.cpp)   |\n| 🫨 Subsquences | Phone Number Combination | [📄 MD](public/images/under_construction.png)   | [💻 CPP](public/images/under_construction.png)   |\n| 🫨 Subsquences | Permutations of a String | [📄 MD](./07.Recursion/2.Subsequence/13.PermutaionsOfAString.md)   | [💻 CPP](./07.Recursion/2.Subsequence/13.PermutaionsOfAString.cpp)   |\n| |\n| 🤠 Hard | Palindrome Partioning | [📄 MD](./07.Recursion/3.Hard/01.PalindromePartitioning.md)   | [💻 CPP](./07.Recursion/3.Hard/01.PalindromePartitioning.cpp)   |\n\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e📦 Stack and Queue\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 🎈 Basics | Implement Stack Using Queue | [📄 MD](./09.Stack_N_Queue/01.Basics/01.ImplementStackUsingQueue.md)   | [💻 CPP](./09.Stack_N_Queue/01.Basics/01.ImplementStackUsingQueue.cpp)   |\n| 🎈 Basics | Implement Queue Using Stacks | [📄 MD](./09.Stack_N_Queue/01.Basics/02.ImplementQueueUsingStacks.md)   | [💻 CPP](./09.Stack_N_Queue/01.Basics/02.ImplementQueueUsingStacks.cpp)   |\n| 🎈 Basics | Valid Parenthesis | [📄 MD](./09.Stack_N_Queue/01.Basics/03.ValidParanthesis.md)   | [💻 CPP](./09.Stack_N_Queue/01.Basics/03.ValidParanthesis.cpp)   |\n| 🎈 Basics | Implement Min-Stack | [📄 MD](./09.Stack_N_Queue/01.Basics)   | [💻 CPP](./09.Stack_N_Queue/01.Basics)   |\n| |\n| 🧨 Expressions | Infix 2 Postfix | [📄 MD](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/01.Infix2Postfix.md)   | [💻 CPP](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/01.Infix2Postfix.cpp)   |\n| 🧨 Expressions | Infix 2 Prefix | [📄 MD](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/02.Infix2Prefix.md)   | [💻 CPP](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/02.Infix2Prefix.cpp)   |\n| 🧨 Expressions | Postfix 2 Infix | [📄 MD](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/03.Postfix2Infix.md)   | [💻 CPP](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/03.Postfix2Infix.md)   |\n| 🧨 Expressions | Prefix 2 Infix | [📄 MD](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/04.Prefix2Infix.md)   | [💻 CPP](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/04.Prefix2Infix.cpp)   |\n| 🧨 Expressions | Postfix 2 Prefix | [📄 MD](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/05.Postfix2Prefix.md)   | [💻 CPP](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/05.Postfix2Prefix.cpp)   |\n| 🧨 Expressions | Prefix 2 Postfix | [📄 MD](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/06.Prefix2Postfix.md)   | [💻 CPP](./09.Stack_N_Queue/02.Prefix_Postfix_Infix/06.Prefix2Postfix.cpp)   |\n| |\n| 🎆 Monotonic DS | Next Greater Element (LC) | [📄 MD](09.Stack_N_Queue/03.MonotonicDS/01.NextGreaterElement.md)   | [💻 CPP](09.Stack_N_Queue/03.MonotonicDS/01.NextGreaterElement.cpp)   |\n| 🎆 Monotonic DS | Next Greater Element II | [📄 MD](09.Stack_N_Queue/03.MonotonicDS/02.NextGreaterElementII.md)   | [💻 CPP](09.Stack_N_Queue/03.MonotonicDS/02.NextGreaterElementII.cpp)   |\n| 🎆 Monotonic DS | Next Smaller Element | [📄 MD](09.Stack_N_Queue/03.MonotonicDS/03.NextSmallerElement.md)   | [💻 CPP](09.Stack_N_Queue/03.MonotonicDS/03.NextSmallerElement.cpp)   |\n| 🎆 Monotonic DS | NGE to Right | [📄 MD](09.Stack_N_Queue/03.MonotonicDS/04.NGEsToRight.md)   | [💻 CPP](09.Stack_N_Queue/03.MonotonicDS/04.NGEsToRight.cpp)   |\n| 🎆 Monotonic DS | Trapping Rainwater | [📄 MD](09.Stack_N_Queue/03.MonotonicDS/05.TrappingRainwater.md)   | [💻 CPP](09.Stack_N_Queue/03.MonotonicDS/05.TrappingRainwater.cpp)   |\n| 🎆 Monotonic DS | Sum of Subarray Minimums | [📄 MD](09.Stack_N_Queue/03.MonotonicDS/06.SumofSubarrayMinimums.md)   | [💻 CPP](09.Stack_N_Queue/03.MonotonicDS/06.SumofSubarrayMinimums.cpp)   |\n| 🎆 Monotonic DS | Astroid Collisions | [📄 MD](09.Stack_N_Queue/03.MonotonicDS/07.AsteroidCollision.md)   | [💻 CPP](09.Stack_N_Queue/03.MonotonicDS/07.AsteroidCollision.cpp)   |\n| 🎆 Monotonic DS | Remove K Digits | [📄 MD](09.Stack_N_Queue/03.MonotonicDS/08.RemoveKDigits.md)   | [💻 CPP](09.Stack_N_Queue/03.MonotonicDS/08.RemoveKDigits.cpp)   |\n| 🎆 Monotonic DS | Largest Rectangle in Histogram | [📄 MD](09.Stack_N_Queue/03.MonotonicDS/09.LargestRectangleInHistogram.md)   | [💻 CPP](09.Stack_N_Queue/03.MonotonicDS/09.LargestRectangleInHistogram.cpp)   |\n| 🎆 Monotonic DS | Maximum Rectangle | [📄 MD](09.Stack_N_Queue/03.MonotonicDS/10.MaximumRectangle.md)   | [💻 CPP](09.Stack_N_Queue/03.MonotonicDS/10.MaximumRectangle.cpp)   |\n| |\n| 🎃 Advanced | Sliding Window Maximum | [📄 MD](09.Stack_N_Queue/04.Advanced/01.SlidingWindowMaximum.md) | [💻 CPP](09.Stack_N_Queue/04.Advanced/01.SlidingWindowMaximum.cpp) |\n| 🎃 Advanced | Online Stock Span | [📄 MD](09.Stack_N_Queue/04.Advanced/02.OnlineStockSpan.md) | [💻 CPP](09.Stack_N_Queue/04.Advanced/02.OnlineStockSpan.cpp) |\n| 🎃 Advanced | The Celebrity Problem | [📄 MD](09.Stack_N_Queue/04.Advanced/03.TheCelebrityProblem.md) | [💻 CPP](09.Stack_N_Queue/04.Advanced/03.TheCelebrityProblem.cpp) |\n| 🎃 Advanced | LRU Cache | [📄 MD](09.Stack_N_Queue/04.Advanced/04.LRUCache.md) | [💻 CPP](09.Stack_N_Queue/04.Advanced/04.LRUCache.cpp) |\n| 🎃 Advanced | LFU Cache | [📄 MD](09.Stack_N_Queue/04.Advanced/05.LFUCache.md) | [💻 CPP](09.Stack_N_Queue/04.Advanced/05.LFUCache.cpp) |\n\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e〽️ Two Pointer and Sliding Window\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 🎲 Medium | Longest Substring without Repeating Characters | [📄 MD](10.TwoPointer_N_SlidingWindow/01.Medium/01.LongestSubStrWoRepeatingChar.md) | [💻 CPP](10.TwoPointer_N_SlidingWindow/01.Medium/01.LongestSubStrWoRepeatingChar.cpp) |\n| 🎲 Medium | Max Consecutive Ones III | [📄 MD](10.TwoPointer_N_SlidingWindow/01.Medium/02.MaxConsecutiveOnesIII.md) | [💻 CPP](10.TwoPointer_N_SlidingWindow/01.Medium/02.MaxConsecutiveOnesIII.cpp) |\n| 🎲 Medium | Fruits in a Basket | [📄 MD](10.TwoPointer_N_SlidingWindow/01.Medium/03.FruitsInABasket.md) | [💻 CPP](10.TwoPointer_N_SlidingWindow/01.Medium/03.FruitsInABasket.cpp) |\n| 🎲 Medium | Longest Repeating Character Replacement | [📄 MD](10.TwoPointer_N_SlidingWindow/01.Medium/04.LongestRepeatingCharacterReplacement.md) | [💻 CPP](10.TwoPointer_N_SlidingWindow/01.Medium/04.LongestRepeatingCharacterReplacement.cpp) |\n| 🎲 Medium | Binary Subarray with Sum K | [📄 MD](10.TwoPointer_N_SlidingWindow/01.Medium/05.BinarySubarraysWSumK.md) | [💻 CPP](10.TwoPointer_N_SlidingWindow/01.Medium/05.BinarySubarraysWSumK.cpp) |\n| 🎲 Medium | Subarrays that are Nice | [📄 MD](10.TwoPointer_N_SlidingWindow/01.Medium/06.NiceSubArrays.md) | [💻 CPP](10.TwoPointer_N_SlidingWindow/01.Medium/06.NiceSubArrays.cpp) |\n| |\n| 🧰 Hard | Substring w/ K Distinct Characters | [📄 MD](10.TwoPointer_N_SlidingWindow/02.Hard/01.SubstringWithKDistinctChars.md) | [💻 CPP](10.TwoPointer_N_SlidingWindow/02.Hard/01.SubstringWithKDistinctChars.cpp) |\n| 🧰 Hard | Substring w/ K Different Characters | [📄 MD](10.TwoPointer_N_SlidingWindow/02.Hard/02.SubstringWithKDiffInt.md) | [💻 CPP](10.TwoPointer_N_SlidingWindow/02.Hard/02.SubstringWithKDiffInt.cpp) |\n| 🧰 Hard | Minimum Window Substring | [📄 MD](10.TwoPointer_N_SlidingWindow/02.Hard/03.MinimumWindowSubstring.md) | [💻 CPP](10.TwoPointer_N_SlidingWindow/02.Hard/03.MinimumWindowSubstring.cpp) |\n\n\n\u003c/details\u003e\n\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🗻 Heaps\u003c/h3\u003e\u003c/summary\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 🎴 Basics | About Priority Queues | [📄 MD](11.Heaps/01.Basics/README.md) | - |\n| 🎴 Basics | Binary Min Heap | [📄 MD](11.Heaps/01.Basics/01.BinaryMinHeap.md) | [💻 CPP](11.Heaps/01.Basics/01.BinaryMinHeap.cpp) |\n| 🎴 Basics | Binary max Heap | [📄 MD](11.Heaps/01.Basics/02.BinaryMaxHeap.md) | [💻 CPP](11.Heaps/01.Basics/02.BinaryMaxHeap.cpp) |\n| 🎴 Basics | Is Array a Min Heap | [📄 MD](11.Heaps/01.Basics/03.IsArrayMinHeap.md) | [💻 CPP](11.Heaps/01.Basics/03.IsArrayMinHeap.cpp) |\n| 🎴 Basics | Min Heap 2 Max Heap | [📄 MD](11.Heaps/01.Basics/04.MinHeap2MaxHeap.md) | [💻 CPP](11.Heaps/01.Basics/04.MinHeap2MaxHeap.cpp) |\n| |\n| 🀄 Medium | Kth Largest Element | [📄 MD](11.Heaps/02.Medium/01.KthLargestElement.md) | [💻 CPP](11.Heaps/02.Medium/01.KthLargestElement.cpp) |\n| 🀄 Medium | Kth Smallest Element | [📄 MD](11.Heaps/02.Medium/02.KthSmallestElement.md) | [💻 CPP](11.Heaps/02.Medium/02.KthSmallestElement.cpp) |\n| 🀄 Medium | Sort Almost Sorted Array | [📄 MD](11.Heaps/02.Medium/03.SortKSortedArray.md) | [💻 CPP](11.Heaps/02.Medium/03.SortKSortedArray.cpp) |\n| 🀄 Medium | Task Scheduler | [📄 MD](11.Heaps/02.Medium/04.TaskScheduler.md) | [💻 CPP](11.Heaps/02.Medium/04.TaskScheduler.cpp) |\n| |\n| 🃏 Hard | Design Twitter | [📄 MD](11.Heaps/03.Hard/01.DesignTwitter.md) | [💻 CPP](11.Heaps/03.Hard/01.DesignTwitter.cpp) |\n| 🃏 Hard | Connect Sticks | [📄 MD](11.Heaps/03.Hard/02.MinCostToconnectStricks.md) | [💻 CPP](11.Heaps/03.Hard/02.MinCostToConnectSticks.cpp) |\n| 🃏 Hard | Kth Largest in a Stream | [📄 MD](11.Heaps/03.Hard/03.KthLargestElementInAStream.md) | [💻 CPP](11.Heaps/03.Hard/03.KthLargestElementInAStream.cpp) |\n| 🃏 Hard | Max Sum Combination | [📄 MD](11.Heaps/03.Hard/04.MaximumSumCombination.md) | [💻 CPP](11.Heaps/03.Hard/04.MaximumSumCombination.cpp) |\n| 🃏 Hard | Median in a Data Stream | [📄 MD](11.Heaps/03.Hard/05.MedianInDataStream.md) | [💻 CPP](11.Heaps/03.Hard/05.MedianInDataStream.cpp) |\n| 🃏 Hard | K Frequent Elements | [📄 MD](11.Heaps/03.Hard/06.KMostFrequent.md) | [💻 CPP](11.Heaps/03.Hard/06.KMostFrequent.cpp) |\n\n\u003cbr\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🤑 Greedy Algorithm\u003c/h3\u003e\u003c/summary\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 🤧 Easy | Assign Cookies | [📄 MD](12.Greedy/01.Easy/01.AssignCookies.md) | [💻 CPP](12.Greedy/01.Easy/01.AssignCookies.cpp) |\n| 🤧 Easy | Fractional Knapsack | [📄 MD](12.Greedy/01.Easy/02.FractionalKnapsack.md) | [💻 CPP](12.Greedy/01.Easy/02.FractionalKnapsack.cpp) |\n| 🤧 Easy | Minimum Coins | [📄 MD](12.Greedy/01.Easy/03.MinimumCoins.md) | [💻 CPP](12.Greedy/01.Easy/03.MinimumCoins.cpp) |\n| 🤧 Easy | Lemonade Changes | [📄 MD](12.Greedy/01.Easy/04.LemonadeChange.md) | [💻 CPP](12.Greedy/01.Easy/04.LemonadeChange.cpp) |\n| 🤧 Easy | Valid Parenthesis | [📄 MD](12.Greedy/01.Easy/05.ValidParenthesis.md) | [💻 CPP](12.Greedy/01.Easy/05.ValidParenthesis.cpp) |\n| |\n| 🤐 Medium | N Meetings | [📄 MD](12.Greedy/02.Medium/01.NMeetings.md) | [💻 CPP](12.Greedy/02.Medium/01.NMeetings.cpp) |\n| 🤐 Medium | Jump Game | [📄 MD](12.Greedy/02.Medium/02.JumpGame.md) | [💻 CPP](12.Greedy/02.Medium/02.JumpGame.cpp) |\n| 🤐 Medium | Jump Game II | [📄 MD](12.Greedy/02.Medium/03.JumpGameII.md) | [💻 CPP](12.Greedy/02.Medium/03.JumpGameII.cpp) |\n| 🤐 Medium | Minimum Platforms for Trains | [📄 MD](12.Greedy/02.Medium/04.MinPlatforms.md) | [💻 CPP](12.Greedy/02.Medium/04.MinPlatforms.cpp) |\n| 🤐 Medium | Job Sequencing | [📄 MD](12.Greedy/02.Medium/05.JobSequencing.md) | [💻 CPP](12.Greedy/02.Medium/05.JobSequencing.cpp) |\n| 🤐 Medium | Candy | [📄 MD](12.Greedy/02.Medium/06.Candy.md) | [💻 CPP](12.Greedy/02.Medium/06.Candy.cpp) |\n| 🤐 Medium | Shortest Job First | [📄 MD](12.Greedy/02.Medium/07.ShortestJobFirst.md) | [💻 CPP](12.Greedy/02.Medium/07.ShortestJobFirst.cpp) |\n| 🤐 Medium | LRU Cache | [📄 MD](12.Greedy/02.Medium/08.LRUCache.md) | [💻 CPP](12.Greedy/02.Medium/08.LRUCache.cpp)\n| 🤐 Medium | Insert Intervals | [📄 MD](12.Greedy/02.Medium/09.Intervals.md) | [💻 CPP](12.Greedy/02.Medium/09.Intervals.cpp) |\n| 🤐 Medium | Largest Number | [📄 MD](12.Greedy/02.Medium/12.LargestNumber.md) | [💻 CPP](12.Greedy/02.Medium/12.LargestNumber.cpp) |\n| |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🌴 Binary Trees\u003c/h3\u003e\u003c/summary\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 🌳 Traversals | Introductions | [📄 MD](13.Binary_Trees/01.Basics/01.Introduction.md) | - |\n| 🌳 Traversals | Binary Trees in C++ | [📄 MD](13.Binary_Trees/01.Basics/02.BTinCpp.md) | - |\n| 🌳 Traversals | Preorder - Recursive | [📄 MD](13.Binary_Trees/01.Basics/03.Preorder.md) | [💻 CPP](13.Binary_Trees/01.Basics/03.Preorder.cpp) |\n| 🌳 Traversals | Inorder - Recursive | [📄 MD](13.Binary_Trees/01.Basics/04.Inorder.md) | [💻 CPP](13.Binary_Trees/01.Basics/04.Inorder.cpp) |\n| 🌳 Traversals | Postorder - Recursive | [📄 MD](13.Binary_Trees/01.Basics/05.Postorder.md) | [💻 CPP](13.Binary_Trees/01.Basics/05.Postorder.cpp) |\n| 🌳 Traversals | Level Order | [📄 MD](13.Binary_Trees/01.Basics/06.LevelOrder.md) | [💻 CPP](13.Binary_Trees/01.Basics/06.LevelOrder.cpp) |\n| 🌳 Traversals | Preorder - Iterative | [📄 MD](13.Binary_Trees/01.Basics/07.Preorder2.md) | [💻 CPP](13.Binary_Trees/01.Basics/07.Preorder2.cpp) |\n| 🌳 Traversals | Inorder - Iterative | [📄 MD](13.Binary_Trees/01.Basics/08.Inorder2.md) | [💻 CPP](13.Binary_Trees/01.Basics/08.Inorder2.cpp) |\n| 🌳 Traversals | Postorder - Iterative | [📄 MD](13.Binary_Trees/01.Basics/09.Postorder2.md) | [💻 CPP](13.Binary_Trees/01.Basics/09.Postorder2.cpp) |\n| 🌳 Traversals | Level Order - Bottom First | [📄 MD](13.Binary_Trees/01.Basics/10.LevelOrder2.md) | [💻 CPP](13.Binary_Trees/01.Basics/10.LevelOrder2.cpp) |\n| |\n| 🌲 Medium | Max Depth of BT | [📄 MD](13.Binary_Trees/02.Medium/01.MaxDepth.md) | [💻 CPP](13.Binary_Trees/02.Medium/01.MaxDepth.cpp) |\n| 🌲 Medium | Is BT Balanced? | [📄 MD](13.Binary_Trees/02.Medium/02.BalancedBinaryTree.md) | [💻 CPP](13.Binary_Trees/02.Medium/02.BalancedBinaryTree.cpp) |\n| 🌲 Medium | Diameter of BT | [📄 MD](13.Binary_Trees/02.Medium/03.DiameterOfTree.md) | [💻 CPP](13.Binary_Trees/02.Medium/03.DiameterOfTree.cpp) |\n| 🌲 Medium | Max Sum of Path | [📄 MD](13.Binary_Trees/02.Medium/04.MaxPath.md) | [💻 CPP](13.Binary_Trees/02.Medium/04.MaxPath.cpp) |\n| 🌲 Medium | Is it the Same Tree? | [📄 MD](13.Binary_Trees/02.Medium/13.SameTree.md) | [💻 CPP](13.Binary_Trees/02.Medium/13.SameTree.cpp) |\n| 🌲 Medium | Zig zag Traversal | [📄 MD](13.Binary_Trees/02.Medium/06.ZigZag.md) | [💻 CPP](13.Binary_Trees/02.Medium/06.ZigZag.cpp) |\n| 🌲 Medium | BT Boundary Traversal | [📄 MD](13.Binary_Trees/02.Medium/07.BoundaryTraversal.md) | [💻 CPP](13.Binary_Trees/02.Medium/07.BoundaryTraversal.cpp) |\n| 🌲 Medium | Vertical Traversal in BT | [📄 MD](13.Binary_Trees/02.Medium/08.VerticalOrder.md) | [💻 CPP](13.Binary_Trees/02.Medium/08.VerticalOrder.cpp) |\n| 🌲 Medium | Top View in BT | [📄 MD](13.Binary_Trees/02.Medium/09.TopView.md) | [💻 CPP](13.Binary_Trees/02.Medium/09.TopView.cpp) |\n| 🌲 Medium | Bottom View in BT | [📄 MD](13.Binary_Trees/02.Medium/10.BottomView.md) | [💻 CPP](13.Binary_Trees/02.Medium/10.BottomView.cpp) |\n| 🌲 Medium | Right Side View of BT | [📄 MD](13.Binary_Trees/02.Medium/13.1.RightSide.md) | [💻 CPP](13.Binary_Trees/02.Medium/13.1.RightSide.cpp) |\n| 🌲 Medium | Left Side View of BT | [📄 MD](13.Binary_Trees/02.Medium/13.2.LeftSide.md) | [💻 CPP](13.Binary_Trees/02.Medium/13.2.LeftSide.cpp) |\n| 🌲 Medium | Symmetric BT | [📄 MD](13.Binary_Trees/02.Medium/12.SymmetricTree.md) | [💻 CPP](13.Binary_Trees/02.Medium/12.SymmetricTree.cpp) |\n| 🌲 Medium | Invert Binary Tree | [📄 MD](13.Binary_Trees/02.Medium/15.InvertTree.md) | [💻 CPP](13.Binary_Trees/02.Medium/15.InvertTree.cpp) |z\n| 🌲 Medium | Minimum Depth of BT | [📄 MD](13.Binary_Trees/02.Medium/14.MinimumDepth.md) | [💻 CPP](13.Binary_Trees/02.Medium/14.MinimumDepth.cpp) |\n| |\n| 🎋 Hard | Root to Node Path | [📄 MD](13.Binary_Trees/03.Hard/01.PathFromNodeToLeaf.md) | [💻 CPP](13.Binary_Trees/03.Hard/01.PathFromNodeToLeaf.cpp) |\n| 🎋 Hard | Lowerst Common Ancestor | [📄 MD](13.Binary_Trees/03.Hard/02.LCA.md) | [💻 CPP](13.Binary_Trees/03.Hard/02.LCA.cpp) |\n| 🎋 Hard | Maximum Width of BT | [📄 MD](13.Binary_Trees/03.Hard/03.MaxWidth.md) | [💻 CPP](13.Binary_Trees/03.Hard/03.MaxWidth.cpp) |\n| 🎋 Hard | Children Sum Property I | [📄 MD](13.Binary_Trees/03.Hard/04.ChildSum.md) | [💻 CPP](13.Binary_Trees/03.Hard/04.ChildSum.cpp) |\n| 🎋 Hard | Children Sum Property II | [📄 MD](13.Binary_Trees/03.Hard/04.1.CheckChildSum.md) | [💻 CPP](13.Binary_Trees/03.Hard/04.1.CheckChildSum.cpp) |\n| 🎋 Hard | All Nodes at a distance K | [📄 MD](13.Binary_Trees/03.Hard/05.NodesAtDistK.md) | [💻 CPP](13.Binary_Trees/03.Hard/05.NodesAtDistK.cpp) |\n| 🎋 Hard | Minimum Time to Burn Tree | [📄 MD](13.Binary_Trees/03.Hard/06.MinTimeBurn.md) | [💻 CPP](13.Binary_Trees/03.Hard/06.MinTimeBurn.cpp) |\n| 🎋 Hard | Count Total Nodes | [📄 MD](13.Binary_Trees/03.Hard/07.CountNodes.md) | [💻 CPP](13.Binary_Trees/03.Hard/07.CountNodes.cpp) |\n| 🎋 Hard | Construct BT from Inorder | [📄 MD](13.Binary_Trees/03.Hard/08.ConstructBT.md) | [💻 CPP](13.Binary_Trees/03.Hard/08.ConstructBT.cpp) |\n| 🎋 Hard | Contruct BT from Postorder | [📄 MD](13.Binary_Trees/03.Hard/09.ConstructBT2.md) | [💻 CPP](13.Binary_Trees/03.Hard/09.ConstructBT2.cpp) |\n| 🎋 Hard | Serialize and Deserialize | [📄 MD](13.Binary_Trees/03.Hard/10.SerDeSer.md) | [💻 CPP](13.Binary_Trees/03.Hard/10.SerDeSer.cpp) |\n| 🎋 Hard | Morris Inorder Traversal | [📄 MD](13.Binary_Trees/03.Hard/11.MorrisInorder.md) | [💻 CPP](13.Binary_Trees/03.Hard/11.MorrisInorder.cpp) |\n| 🎋 Hard | Flatten Binary Tree | [📄 MD](13.Binary_Trees/03.Hard/1.Flattentree.md) | [💻 CPP](13.Binary_Trees/03.Hard/12.FlattenTree.cpp) |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🦜 Binary Search Trees\u003c/h3\u003e\u003c/summary\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 🚲 Concepts | Introduction | [📄 MD](14.Binary_Search_Trees/01.Intro/01.Introduction.md) | [💻 CPP](14.Binary_Search_Trees/01.Intro/01.Introduction.cpp) |\n| 🚲 Concepts | Search in BST | [📄 MD](14.Binary_Search_Trees/01.Intro/02.Search.md) | [💻 CPP](14.Binary_Search_Trees/01.Intro/02.Search.cpp) |\n| 🚲 Concepts | Find Min / Max | [📄 MD](14.Binary_Search_Trees/01.Intro/03.MinMax.md) | [💻 CPP](14.Binary_Search_Trees/01.Intro/03.MinMax.cpp) |\n| |\n| 🛼 Medium | Ceiling of K in BST | [📄 MD](14.Binary_Search_Trees/02.Medium/01.CeilOfK.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/01.CeilOfK.cpp) |\n| 🛼 Medium | Floor of K in BST | [📄 MD](14.Binary_Search_Trees/02.Medium/02.FloorOfK.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/02.FloorOfK.cpp) |\n| 🛼 Medium | Insertion into BST | [📄 MD](14.Binary_Search_Trees/02.Medium/03.InsertIntoBST.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/03.InsertIntoBST.cpp) |\n| 🛼 Medium | Delete Node from BST | [📄 MD](14.Binary_Search_Trees/02.Medium/04.DeleteNode.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/04.DeleteNode.cpp) |\n| 🛼 Medium | Find Kth Smallest \u0026 Largest | [📄 MD](14.Binary_Search_Trees/02.Medium/05.KMinMax.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/05.KMinMax.cpp) |\n| 🛼 Medium | Validate a BST | [📄 MD](14.Binary_Search_Trees/02.Medium/06.ValidateBST.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/06.ValidateBST.cpp) |\n| 🛼 Medium | Least Common Ancestor | [📄 MD](14.Binary_Search_Trees/02.Medium/07.LCA.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/07.LCA.cpp) |\n| 🛼 Medium | Build a Unique BST | [📄 MD](14.Binary_Search_Trees/02.Medium/08.BuildBST.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/08.BuildBST.cpp) |\n| 🛼 Medium | Inorder Succesor in BST | [📄 MD](14.Binary_Search_Trees/02.Medium/09.Successor.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/09.Successor.cpp) |\n| 🛼 Medium | Merge Two BSTs | [📄 MD](14.Binary_Search_Trees/02.Medium/10.MergeBST.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/10.MergeBST.cpp) |\n| 🛼 Medium | Two Sum IV | [📄 MD](14.Binary_Search_Trees/02.Medium/11.TwoSumBST.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/11.TwoSumBST.cpp) |\n| 🛼 Medium | Recover BST | [📄 MD](14.Binary_Search_Trees/02.Medium/12.RecoverBST.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/12.RecoverBST.cpp) |\n| 🛼 Medium | Max Sum in BST | [📄 MD](14.Binary_Search_Trees/02.Medium/13.MaxSum.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/13.MaxSum.cpp) |\n| 🛼 Medium | Largest BST Subtree | [📄 MD](14.Binary_Search_Trees/02.Medium/14.LargestBST.md) | [💻 CPP](14.Binary_Search_Trees/02.Medium/14.LargestBST.cpp) |\n\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e💹 Graphs\u003c/h3\u003e\u003c/summary\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 🎯 Basics | Introduction | [📄 MD](15.Graphs/01.Basics/01.Introduction.md) | [💻 CPP](15.Graphs/01.Basics/01.Introduction.cpp) |\n| 🎯 Basics | Graphs in CPP | [📄 MD](15.Graphs/01.Basics/02.GraphInCpp.md) | - |\n| 🎯 Basics | Graphs in Java | [📄 MD](15.Graphs/01.Basics/03.GraphInJava.md) | - |\n| 🎯 Basics | Graphs in Javascript | [📄 MD](15.Graphs/01.Basics/04.GraphInJs.md) | - |\n| 🎯 Basics | Connected Components in Graph | [📄 MD](15.Graphs/01.Basics/05.ConnectedComponents.md) | [💻 CPP](15.Graphs/01.Basics/05.ConnectedComponents.cpp) |\n| 🎯 Basics | BFS Traversal in Graphs | [📄 MD](15.Graphs/01.Basics/06.BFS.md) | [💻 CPP](15.Graphs/01.Basics/06.BFS.cpp) |\n| 🎯 Basics | DFS Traversal in Graphs | [📄 MD](15.Graphs/01.Basics/07.DFS.md) | [💻 CPP](15.Graphs/01.Basics/07.DFS.cpp) |\n| |\n| 🧩 Medium | Number of Provinces | [📄 MD](15.Graphs/02.Medium/01.Provinces.md) | [💻 CPP](15.Graphs/02.Medium/01.Provinces.cpp) |\n| 🧩 Medium | Rotten Oranges | [📄 MD](15.Graphs/02.Medium/02.RottenOranges.md) | [💻 CPP](15.Graphs/02.Medium/02.RottenOranges.cpp) |\n| 🧩 Medium | Flood Fill | [📄 MD](15.Graphs/02.Medium/03.FloodFill.md) | [💻 CPP](15.Graphs/02.Medium/03.FloodFill.cpp) |\n| 🧩 Medium | Detect Cycle in Undirected Graph - BFS | [📄 MD](15.Graphs/02.Medium/04.CycleInUndirected.md) | [💻 CPP](15.Graphs/02.Medium/04.CycleInUndirected.cpp) |\n| 🧩 Medium | Detect Cycle in Undirected Graph - DFS | [📄 MD](15.Graphs/02.Medium/05.CycleInUndirectedII.md) | [💻 CPP](15.Graphs/02.Medium/05.CycleInUndirectedII.cpp) |\n| 🧩 Medium | Surrounded Regions | [📄 MD](15.Graphs/02.Medium/07.Surrounded.md) | [💻 CPP](15.Graphs/02.Medium/07.Surrounded.cpp) |\n| 🧩 Medium | Number of Enclaves | [📄 MD](15.Graphs/02.Medium/08.Enclaves.md) | [💻 CPP](15.Graphs/02.Medium/08.Enclaves.cpp) |\n| 🧩 Medium | Word Ladder | [📄 MD](15.Graphs/02.Medium/09.WordLadder.md) | [💻 CPP](15.Graphs/02.Medium/09.WordLadder.cpp) |\n| 🧩 Medium | Word Ladder II | [📄 MD](15.Graphs/02.Medium/10.WordLadderII.md) | [💻 CPP](15.Graphs/02.Medium/10.WordLadderII.cpp) |\n| 🧩 Medium | Number of Islands | [📄 MD](15.Graphs/02.Medium/11.Islands.md) | [💻 CPP](15.Graphs/02.Medium/11.Islands.cpp) |\n| 🧩 Medium | Bipartite Graph | [📄 MD](15.Graphs/02.Medium/12.Bipartite.md) | [💻 CPP](15.Graphs/02.Medium/12.Bipartite.cpp) |\n| 🧩 Medium | Detect Cycle in Directed Graph - DFS | [📄 MD](15.Graphs/02.Medium) | [💻 CPP](15.Graphs/02.Medium) |\n| |\n| 🧸 Topo Sort | - | [📄 MD](15.Graphs/03.TopoSort) | [💻 CPP](15.Graphs/03.TopoSort) |\n| |\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🎖️ Dynamic Programming\u003c/h3\u003e\u003c/summary\u003e\n\n| Category      | Problem / Algorithm                 | Explanation                                           | Code                                                    |\n| ---------------- | ----------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |\n| 🍭 Basics | - | [📄 MD](16.Dynamic_Programming/01.Basics) | [💻 CPP](16.Dynamic_Programming/01.Basics) |\n\n\n\u003c/details\u003e\n\n\u003cbr\u003e\n---\n\n## ⚛️ Development Structure\n\n\u003e 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.\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🍕 React Frontend Roadmap\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n| Topic | Resourse | Links | Notes |\n|:---|:---|:---:|---|\n| HTML | Youtube - Dave Gray | [YT](https://www.youtube.com/watch?v=mJgBOIoGihA) | Do this first, learn about semantics and tags and why they are important. |\n| CSS | Youtube - Dave Gray | [YT](https://www.youtube.com/watch?v=n4R2E7O-Ngo) | Get basic understanding of CSS classes, and practices with simple projects. |\n| HTML \u0026 CSS | Youtube - SuperSimpleDev | [YT](https://www.youtube.com/watch?v=G3e-cpL7ofc) | Love Simon's content, super simple, and easy to understand. |\n| |\n| Javascript | Hitest Choudhary | [YT](https://www.youtube.com/watch?v=dlfrWbYk1v0\u0026list=PLRAV69dS1uWTSu9cVg8jjXW8jndOYYJPP) | This is an old series by Hitesh sir, all in english, and pretty solid. |\n| Javascript | Hitest Choudhary | [YT](https://www.youtube.com/watch?v=Hr5iLG7sUa0\u0026list=PLu71SKxNbfoBuX3f4EOACle2y-tRC5Q37) | This series is in ***Hindi***, more modern and simple. |\n| Javascript | SuperSimpleDev | [YT](https://www.youtube.com/watch?v=EerdGm-ehJQ\u0026pp=ygUWamF2YXNjcmlwdCBmdWxsIGNvdXJzZQ%3D%3D) | Simon again, he is also really great, industry standard but simple. |\n| Javascript | Dave Gray | [YT](https://www.youtube.com/watch?v=EfAl9bwzVZk\u0026pp=ygUWamF2YXNjcmlwdCBmdWxsIGNvdXJzZQ%3D%3D) | Dave is also great, but I prefered the other three above in JS. |\n| Javascript | arindal1 | [repo](https://github.com/arindal1/JS-Lookup) | Elaborate notes on Javascript with code and examples. |\n| Javascript | arindal1 | [repo](https://github.com/arindal1/30Day-JS) | A 30 Day Javascript challenge, to make your foundations solid. |\n| |\n| Git | Brendan Dickinson | [YT](https://www.youtube.com/watch?v=IeXhYROClZk) | Short and sweet intro to Git. |\n| Git | Nick White | [YT](https://www.youtube.com/watch?v=mJ-qvsxPHpY) | Simple and straight, a more casual and easy explanation. |\n| Git | Hitesh Choudhary | [YT](https://www.youtube.com/watch?v=zTjRZNkhiEU\u0026t=7809s\u0026pp=ygUPZ2l0IGZ1bGwgY291cnNl) | If you want to go in depth, with inner mechanisms and industry level standards. |\n| |\n| NPM | Traversy Media | [YT](https://www.youtube.com/watch?v=jHDhaSSKmB0) | Course to package managers for Development. |\n| |\n| TailwindCSS | JavascriptMastery | [YT](https://www.youtube.com/watch?v=6biMWgD6_JY\u0026pp=ygUSdGFpbHdpbmRjc3MgY291cnNl) | Great explanations, and hands on parctice. |\n| TailwindCSS | Dave Gray | [YT](https://www.youtube.com/watch?v=lCxcTsOHrjo\u0026t=3s\u0026pp=ygUSdGFpbHdpbmRjc3MgY291cnNl) | Dave is really good with CSS, smh.\n| |\n| ReactJS | Hitesh Choudhary | [YT](https://www.youtube.com/watch?v=Bvwq_S0n2pk) - [repo](https://github.com/arindal1/React-Lookup) | Pure beginner friendly course for React. Hitesh sir is super particular about industry standards. |\n| ReactJS | Hitesh Choudhary | [YT](https://www.youtube.com/watch?v=vz1RlUyrc3w\u0026list=PLu71SKxNbfoDqgPchmvIsL4hTnJIrtige) | This series is in ***Hindi***, equivalent to the course above.|\n| ReactJS | SuperSimpleDev | [YT](https://www.youtube.com/watch?v=TtPXvEcE11E\u0026pp=ygUMcmVhY3QgY291cnNl0gcJCQwKAYcqIYzv) | Simon is always straightforward, and tries his best to keep things simple but good quality. |\n| ReactJS | JavascriptMastery | [YT](https://www.youtube.com/watch?v=dCLhUialKPQ\u0026pp=ygUMcmVhY3QgY291cnNl) | Once you have understood basics of React, watch this. |\n| |\n| Linters and Formatters | CoderDave | [YT](https://www.youtube.com/watch?v=HDQXWr5TOnI\u0026pp=ygUibGludGVycyBhbmQgZm9ybWF0dGVycyBkZXZlbG9wbWVudNIHCQkMCgGHKiGM7w%3D%3D) | Linters are fairly easy, just watch this and gain a basic understanding. |\n| |\n| Module Bundler | Fireship | [YT](https://www.youtube.com/watch?v=5IG4UmULyoA) | You will already know about module bundlers while learning React, if not, this is for you. I find fireship really interesting. |\n| Vite | CodeSTACKr | [YT](https://www.youtube.com/watch?v=LQQ3CR2JTX8) | A vite crash course to know indepth mechanisms of Vite. (optional) |\n| |\n| Testing | dotconferences | [YT](https://www.youtube.com/watch?v=l3qjQpYBR8c) | Testing is an essential but advanced part of development. This video tells you all about testing in industry. |\n| Jest | FreeCodeCamp | [YT](https://www.youtube.com/watch?v=IPiUDhwnZxA) | Jest is a Javascript testing tech. | \n| Authentication | Hayk Simonyan | [YT](https://www.youtube.com/watch?v=9JPnN1Z_iSY\u0026pp=ygUOYXV0aGVudGljYXRpb24%3D) | Hayk Simonyan | Basic understanding of different Authentication methods like JWT, OAuth, etc. |\n| |\n| Web API | Keep on Coding | [YT](https://www.youtube.com/watch?v=_7rT-ixivWU) | Basics of Web API. |\n| Types of APIs | Codist | [YT](https://www.youtube.com/watch?v=pBASqUbZgkY\u0026pp=ygUMQVBJIGluIGRlcHRo) | Different types of APIs used in the industry, and why? |\n| Rest API | IBM Tech | [YT](https://www.youtube.com/watch?v=lsMQRaeKNDk\u0026t=170s\u0026pp=ygUMQVBJIGluIGRlcHRo) | A little about Restful APIs |\n| |\n| Web Security | Arkenstone Learning | [YT](https://www.youtube.com/playlist?list=PLH8n_ayg-60J9i3nsLybper-DR3zJw6Z5) | This a playlist that focuses on WebSecurity through ZAP, not super important, but do learn the theory. |\n| |\n| SSR | Microsoft Developer | [YT](https://www.youtube.com/watch?v=okvg3MRAPs0) | What is Server Side Rendering? |\n| SSR | Smoljames | [YT](https://www.youtube.com/watch?v=ObrSuDYMl1s) | Server Side Rendering vs Client Side Rendering |\n| NextJs | FreeCodeCamp | [YT](https://www.youtube.com/watch?v=1WmNXEVia8I) | 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! |\n| SSG | Net Ninja | [YT](https://www.youtube.com/watch?v=Qms4k6y7OgI) | 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) |\n| |\n| Design System | Figma | [YT](https://www.youtube.com/watch?v=YLo6g58vUm0) | Well designing your site is also important. |\n| Deployments | - Multiple - | [Netlify](https://www.youtube.com/watch?v=NBrQp6-721c) - [Github](https://www.youtube.com/watch?v=8hrJ4oN1u_8) - [Vercel](https://www.youtube.com/watch?v=Vx5nPGdsFaU) - [Render](https://www.youtube.com/watch?v=yWxBUcG_C7g) - | How to deploy your code in the Internet. |\n| |\n| Web Performance | Dmitriy Zhiganov | [YT](https://www.youtube.com/watch?v=KUdqbIHn8Ic) | How to enhance the performance of your site. Design Systems. |\n| Lighthouse | WPDev | [YT](https://www.youtube.com/watch?v=_eM7hmORXZA) | Lighthouse is an open-source, automated tool for improving the quality of web pages.  |\n| Dev Tools | Tobi Mey | [YT](https://www.youtube.com/watch?v=2CC0fugc_2o) | DevTools are a set of web developer tools built directly into web browsers. |\n| Service Workers | Udacity | [YT](https://www.youtube.com/watch?v=A6MHtKkA0CA) | Service Workers are JavaScript files that act as proxy servers between web browsers and web servers.  |\n| Accessibility | Chrome | [YT](https://www.youtube.com/playlist?list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g) | Understanding Accessibility and it's importance for websites. |\n\n\n\u003e that should be all for Frontend development. Rest is upto practice and projects.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🔰 Node Backend Roadmap\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\nIn progress.\n\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch3\u003e🍵 Java Roadmap\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cbr\u003e\n\n\n#### Phase 1: Core JAVA + OOP\n\n- Java memory model (Heap v Stack)\n- OOP Principles\n- SOLID Principles\n- Generics, Lamda, Streams\n- Exception Handling\n- Immutibility \u0026 Best Practices\n- JVM Internals\n\n### Phase 2: DSA\n\n- FAANG Level prep\n- Clean Code\n- Edge-case handling\n- TIME + Space Complexity\n\n### Phase 3: Multithreading \u0026 Concurrency\n\n- Thread lifecycle\n- Synchronization v Locks\n- Deadlocks, Starvation\n- ExecutorService\n- Completable Future\n- Concurrent Collections\n\n### Phase 4: Spring Boot + RestAPIs\n\n- Spring Core \u0026 Dependency Injection\n- Spring Boot auto-config\n- RestAPI design\n- Validation \u0026 Execution Handling\n- Spring Security (JWT + Role Based)\n- Logging \u0026 Monitoring\n- Unit + Integration testing\n\n### Phase 5: Databses\n\n- SQL:\n  - Indexing \u0026 query optimizations\n  - Joins \u0026 Subqueries\n  - ACID v BASE\n\n- NoSQL:\n  - MongoDB schema design\n  - when to use SQL \u0026 noSQL\n  - Redis Caching\n\n### Phase 6: System Design\n\nBelow 🔽🔽\n\n\n\u003c/details\u003e\n\n\n---\n\n## 📁 System Design Structure\n\n\n| Topic | Resource | Links | Notes |\n| -- | -- | -- | -- |\n| Introduction | Crio.do | [article](https://www.crio.do/blog/a-comprehensive-guide-to-system-design/) | Basic intro to System Design and Engineering. |\n| Guide | Swimm | [article](https://swimm.io/learn/system-design/system-design-complete-guide-with-patterns-examples-and-techniques) | Basic intro to System Design and patterns. |\n| The Primer | donnemartin | [repo](https://github.com/donnemartin/system-design-primer#how-to-approach-a-system-design-interview-question) | **The System Design Primer**. It's the *Holy Grail* for SDEs, trust me. |\n| SD Template | Top Cat | [leetcode](https://leetcode.com/discuss/post/229177/my-system-design-template-by-topcat-vtk2/) | A template for how to approach designing an efficient System. |\n| SD Questions | HiredInTech | [article](https://www.hiredintech.com/system-design/) | 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. |\n| SD Interviews | Jackson Gabbard | [YT](https://www.youtube.com/watch?v=ZgdS0EUmn70) | Walk through the context and goals of a systems design and architecture interview. |\n\n\n\u003e [ IN PROGRESS ]\n\n\n---\n\n### Contact\n\n- LinkedIn - [arindalchar](https://www.linkedin.com/in/arindalchar)\n- Twitter - [arindal_17](https://www.twitter.com/arindal_17)\n\n### 🌟 Star the Repo if You Find it Useful!\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farindal1%2Fsde-dsa-sd-prep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farindal1%2Fsde-dsa-sd-prep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farindal1%2Fsde-dsa-sd-prep/lists"}