Skip to content

Latest commit

 

History

History
955 lines (944 loc) · 41.3 KB

README.md

File metadata and controls

955 lines (944 loc) · 41.3 KB

Complete-Preparation

🎉 One-stop destination for all your technical interview Preparation 🎉

I started this project on April 21, 2021 (Initial commit) to document all my DSA preparation. I have been preparing for DSA since 2021 and solved 1000+ problems on various programming platforms. I have been asked by many people to share my code and approach. So I decided to make this repo public so that everyone can benefit from it.

As its started as my personal repo, I have written explanation in my own way. I tried to explain as much as I can, also added multiple approaches to solve the problem with their time and space complexity. Still you can expect some mistakes(I tried my best to avoid them) and if you find any, please feel free to correct them. Also some series are not completed yet, you can contribute in them too. check contribution.md if you want to contribute and help to improve complete preparation.

Head over to complete-preparation to get started! 🚀

Index

Sn. Sections
1 Leetcode Problems 💻
2 Topic wise DSA 📚
3 Striver's SDE-Sheet 📄
4 Object Oriented Programming 📝
5 CS Fundamentals 📚
6 6 Companies 30 Days 🏢
7 75 Days DSA Challenge 🔥
8 Company Specific Information 🏢
9 C++ Tips and Tricks 😀

File and Folder tree for convenience

Tree View
.
├── 6Companies30Days
│   ├── Microsoft
│   │   └── README.md
│   └── README.md
├── 75-days-dsa-challenge
│   ├── 75 days challenge Questions sheet.pdf
│   ├── Day_1
│   │   ├── 121_bestTimeToBuyAndSellStocks.md
│   │   ├── 1_twoSum.md
│   │   ├── 283_moveZeros.md
│   │   ├── 66_plusOne.md
│   │   └── README.md
│   ├── Day_10
│   │   ├── 123_bestTimeToBuyAndSellStockIII.md
│   │   ├── 41_firstMissingPositive.md
│   │   ├── 84_largestRectangleInHistogram.md
│   │   └── README.md
│   ├── Day_11
│   │   ├── 1499_maxValueOfEquation.md
│   │   ├── 381_insertDeleteGetRandomO_1.md
│   │   └── README.md
│   ├── Day_12
│   │   ├── 75_sortColors.md
│   │   ├── 763_partitionLabels.md
│   │   └── README.md
│   ├── Day_13
│   │   ├── 424_longestRepeatingCharacterReplacement.md
│   │   ├── 992_subarraysWithKDifferentIntegers.md
│   │   └── README.md
│   ├── Day_14
│   │   ├── 1351_countNegativeNumbersInASortedMatrix.md
│   │   ├── 33_searchInRotatedSortedArray.md
│   │   ├── 852_peakIndexInAMountainArray.md
│   │   ├── 981_timeBasedKeyValueStore.md
│   │   └── README.md
│   ├── Day_15
│   │   ├── 162_findPeakElement.md
│   │   ├── 34_findFirstAndLastPositionOfElementInSortedArray.md
│   │   ├── 50_pow.md
│   │   ├── 74_search2DMatrix.md
│   │   └── README.md
│   ├── Day_16
│   │   ├── 1011_capacityToShipPackagesWithinDDays.md
│   │   ├── 1760_minimumLimitOfBallsInABag.md
│   │   ├── 29_divideTwoIntegers.md
│   │   ├── 4_medianOfTwoSortedArrays.md
│   │   └── README.md
│   ├── Day_17
│   │   ├── 315_countOfSmallerNumbersAfterSelf.md
│   │   ├── 410_splitArrayLargestSum.md
│   │   └── README.md
│   ├── Day_18
│   │   └── gfg_read.md
│   ├── Day_19
│   │   ├── 347_topKFrequentElements.md
│   │   ├── 706_designHashMap.md
│   │   ├── 953_verifyingAnAlienDictionary.md
│   │   └── README.md
│   ├── Day_2
│   │   ├── 122_bestTimeToBuyAndSellStock.md
│   │   ├── 169_mejorityElement.md
│   │   ├── 724_findPivotIndex.md
│   │   ├── 977_squareOfSortedArray.md
│   │   └── README.md
│   ├── Day_20
│   │   ├── 19_removeNthNodeFromEndOfList.md
│   │   ├── 206_reverseLinkedList.md
│   │   ├── 21_mergeTwoSortedLists.md
│   │   ├── 876_middleOfTheLinkedList.md
│   │   └── README.md
│   ├── Day_21
│   │   ├── 160_intersectionOfTwoLinkedLists.md
│   │   ├── 234_palindromeLinkedList.md
│   │   ├── 237_deleteNodeInALinkedList.md
│   │   ├── 445_addTwoNumbersII.md
│   │   └── README.md
│   ├── Day_22
│   │   ├── 142_linkedListCycleII.md
│   │   ├── 25_reverseNodesInKGroup.md
│   │   ├── 61_rotateList.md
│   │   └── README.md
│   ├── Day_23
│   │   ├── 138_copyListWithRandomPointer.md
│   │   ├── 287_findTheDuplicateNumber.md
│   │   ├── 430_flattenAMultilevelDoublyLinkedList.md
│   │   └── README.md
│   ├── Day_24
│   │   ├── 225_implementStackUsingQueues.md
│   │   ├── 232_implementQueueUsingStacks.md
│   │   ├── 496_nextGreaterElementI.md
│   │   ├── 503_nextGreaterElementII.md
│   │   └── README.md
│   ├── Day_25
│   │   ├── 000_helpClassmates.md
│   │   ├── 146_lruCache.md
│   │   ├── 155_minStack.md
│   │   ├── 20_validParentheses.md
│   │   └── README.md
│   ├── Day_26
│   │   ├── 239_slidingWindowMaximum.md
│   │   ├── 460_lfuCache.md
│   │   ├── 84_largestRectangleInHistogram.md
│   │   └── README.md
│   ├── Day_27
│   │   ├── 101_symmetricTree.md
│   │   ├── 226_invertBinaryTree.md
│   │   ├── 543_diameterOfBinaryTree.md
│   │   ├── 572_subtreeOfAnotherTree.md
│   │   └── README.md
│   ├── Day_28
│   │   ├── 104_maximumDepthOfBinaryTree.md
│   │   ├── 108_convertSortedArrayToBinarySearchTree.md
│   │   ├── 257_binaryTreePaths.md
│   │   ├── 617_mergeTwoBinaryTrees.md
│   │   └── README.md
│   ├── Day_29
│   │   ├── 100_sameTree.md
│   │   ├── 112_pathSum.md
│   │   ├── 235_lowestCommonAncestorOfABinarySearchTree.md
│   │   ├── 530_minimumAbsoluteDifferenceInBST.md
│   │   └── README.md
│   ├── Day_3
│   │   ├── 118_pascalsTriangle.md
│   │   ├── 15_threeSum.md
│   │   ├── 26_removeDuplicateFormSortedArray.md
│   │   ├── 56_mergeIntervals.md
│   │   └── README.md
│   ├── Day_30
│   │   ├── 110_balancedBinaryTree.md
│   │   ├── 1448_countGoodNodesInBinaryTree.md
│   │   ├── 404_sumOfLeftLeaves.md
│   │   ├── 662_maximumWidthOfBinaryTree.md
│   │   └── README.md
│   ├── Day_31
│   │   ├── 199_binaryTreeRightSideView.md
│   │   ├── 236_lowestCommonAncestorOfABinaryTree.md
│   │   ├── 297_serializeAndDeserializeBinaryTree.md
│   │   ├── 863_allNodesDistanceKInBinaryTree.md
│   │   └── README.md
│   ├── Day_32
│   │   ├── 102_binaryTreeLevelOrderTraversal.md
│   │   ├── 103_binaryTreeZigzagLevelOrderTraversal.md
│   │   ├── 173_binarySearchTreeIterator.md
│   │   ├── 437_pathSumIII.md
│   │   └── README.md
│   ├── Day_33
│   │   ├── 114_flattenBinaryTreeToLinkedList.md
│   │   ├── 116_populatingNextRightPointersInEachNode.md
│   │   ├── 662_maximumWidthOfBinaryTree.md
│   │   ├── 889_constructBinaryTreeFromPreorderAndPostorderTraversal.md
│   │   └── README.md
│   ├── Day_34
│   │   ├── 938_rangeSumOfBST.md
│   │   └── README.md
│   ├── Day_35
│   │   ├── 108_convertSortedArrayToBinarySearchTree.md
│   │   ├── 235_lowestCommonAncestorOfABinarySearchTree.md
│   │   ├── 530_minimumAbsoluteDifferenceInBST.md
│   │   ├── 98_validateBinarySearchTree.md
│   │   └── README.md
│   ├── Day_36
│   │   ├── 230_kthSmallestElementInABST.md
│   │   ├── 95_uniqueBinarySearchTreesII.md
│   │   ├── 96_uniqueBinarySearchTrees.md
│   │   ├── 99_recoverBinarySearchTree.md
│   │   └── README.md
│   ├── Day_37
│   │   └── gfg_read.md
│   ├── Day_38
│   │   ├── 215_kthLargestElementInAnArray.md
│   │   ├── 295_findMedianFromDataStream.md
│   │   └── README.md
│   ├── Day_39
│   │   ├── 218_theSkylineProblem.md
│   │   ├── 23_mergeKSortedLists.md
│   │   ├── 347_topKFrequentElements.md
│   │   └── README.md
│   ├── Day_4
│   │   ├── 11_containerWithMostWater.md
│   │   ├── 31_nextPermutation.md
│   │   ├── 380_insertAndDeleteO_1.md
│   │   ├── 560_subarraySumEqualsK.md
│   │   └── README.md
│   ├── Day_41
│   │   ├── activitySelection.md
│   │   ├── minimumNumberOfCoins.md
│   │   ├── nMeetingsInOneRoom.md
│   │   └── README.md
│   ├── Day_42
│   │   ├── fractionalKnapsack.md
│   │   ├── jobSequencingProblem.md
│   │   ├── minimumPlatforms.md
│   │   └── README.md
│   ├── Day_43
│   │   └── gfg_read.md
│   ├── Day_44
│   │   ├── 17_letterCombinationsOfAPhoneNumber.md
│   │   └── README.md
│   ├── Day_5
│   │   ├── 48_rotateImage.md
│   │   ├── 54_spiralMatrix.md
│   │   ├── 79_wordSearch.md
│   │   └── README.md
│   ├── Day_6
│   │   ├── 1010_pairsOfSongsWithTotalDurationDivisibleBy60.md
│   │   ├── 16_3SumClosest.md
│   │   ├── 18_4Sum.md
│   │   ├── 289_gameOfLife.md
│   │   └── README.md
│   ├── Day_7
│   │   ├── 1423_maximumPointsYouCanObtainFromCards.md
│   │   ├── 39_combinationSum.md
│   │   ├── 45_jumpGameII.md
│   │   └── README.md
│   ├── Day_8
│   │   ├── 1465_maximumAreaOfAPieceOfCakeAfterHorizontalAndVerticalCuts.md
│   │   ├── 442_findAllDuplicatesInAnArray.md
│   │   ├── 532_kdiffPairsInAnArray.md
│   │   ├── 695_maxAreaOfIsland.md
│   │   └── README.md
│   ├── Day_9
│   │   ├── 1169_invalidTransactions.md
│   │   ├── 55_jumpGame.md
│   │   ├── 974_subarraySumsDivisibleByK.md
│   │   └── README.md
│   └── README.md
├── Company-specific
│   ├── hr.md
│   ├── IAURO
│   │   └── README.md
│   ├── README.md
│   ├── RSL
│   │   └── README.md
│   ├── TIAA
│   │   ├── README.md
│   │   └── TIAA Interview Exp.xlsx
│   └── tips.md
├── _config.yml
├── CONTRIBUTING.md
├── cpp_tips_and_tricks.md
├── CS-fundamentals
│   ├── CN.md
│   ├── DBMS.md
│   ├── OS.md
│   └── README.md
├── Important-links.md
├── Leetcode
│   ├── 001-099.md
│   ├── 1000-1099.md
│   ├── 100-199.md
│   ├── 100_sameTree.md
│   ├── 1010_pairsOfSongsWithTotalDurationsDivisibleBy60.md
│   ├── 101_symmetricTree.md
│   ├── 1029_twoCityScheduling.md
│   ├── 102_btLevelOrderTraversal.md
│   ├── 103_btZigzagLevelOrderTraversal.md
│   ├── 1041_robotBoundedInCircle.md
│   ├── 104_maxDepthBinaryTree.md
│   ├── 106_constructBinaryTreeFromInorderAndPostorderTraversal.md
│   ├── 107_btLevelOrderTraversalII.md
│   ├── 1081_smallestSubsequenceOfDistinctCharacters.md
│   ├── 1094_carPooling.md
│   ├── 1100-1199.md
│   ├── 110_balancedBinaryTree.md
│   ├── 112_pathSum.md
│   ├── 1137_nthTribonacciNumber.md
│   ├── 1143_longestCommonSubsequence.md
│   ├── 1161_maximumLevelSumOfABinaryTree.md
│   ├── 116_populatingNextRightPointer.md
│   ├── 1178_numberOfValidWordsForEachPuzzle.md
│   ├── 118_pascalsTriangle.md
│   ├── 119_pascalsTriangleII.md
│   ├── 1200-1299.md
│   ├── 1200_minimumAbsoluteDifference.md
│   ├── 120_triangle.md
│   ├── 121_bestTimeToBuyAndSellStock.md
│   ├── 122_bestTimeToBuySellStockII.md
│   ├── 1232_checkIfItIsAStraightLine.md
│   ├── 123_bestTimeToBuySellStockIII.md
│   ├── 1286_iteratorForCombination.md
│   ├── 1289_minimumFallingPathSumII.md
│   ├── 128_longestConsecutiveSequence.md
│   ├── 1295_findNumbersWithEvenNumberOfDigits.md
│   ├── 129_sumRootToLeafNumbers.md
│   ├── 12_integerToRoman.md
│   ├── 1300-1399.md
│   ├── 1305_allElementsInTwoBinarySearchTrees.md
│   ├── 130_surroundedRegions.md
│   ├── 131_palindromePartitioning.md
│   ├── 1332_removePalindromicSubsequences.md
│   ├── 1337_theKWeakestRowsInAMatrix.md
│   ├── 133_cloneGraph.md
│   ├── 134_gasStation.md
│   ├── 1359_countAllValidPickupAndDeliveryOption.md
│   ├── 1365_howMenyNumbersAreSmallerThanTheCurrentNumber.md
│   ├── 136_singleNumber.md
│   ├── 1379_findACorrespondingNodeOfABinaryTreeInACloneOfThatTree.md
│   ├── 1389_createTargetArrayInTheGivenOrder.md
│   ├── 138_copyLinkedListWithRandomPointer.md
│   ├── 1400-1499.md
│   ├── 1413_minimumValueToGetPositiveStepByStepSum.md
│   ├── 141_linkedListCycle.md
│   ├── 142_linkedListCycleII.md
│   ├── 1431_kidsWithTheGreatestNumberOfCandies.md
│   ├── 143_reorderList.md
│   ├── 144_binaryTreePreorderTraversal.md
│   ├── 145_binaryTreePostorderTraversal.md
│   ├── 1470_shuffleTheArray.md
│   ├── 1480_runningSumArr.md
│   ├── 148_sortList.md
│   ├── 1500-1599.md
│   ├── 1502_canMakeArithmeticProgressionFromSequence.md
│   ├── 150_evaluateReversePolishNotation.md
│   ├── 1512_numberOfGoodPairs.md
│   ├── 152_maximumProductSubarray.md
│   ├── 15_3sum.md
│   ├── 155_minStack.md
│   ├── 1572_matrixDiagonalSum.md
│   ├── 1578_minimumTimeToMakeRopeColorful.md
│   ├── 1600-1699.md
│   ├── 1658_minimumOperationsToReduceXToZero.md
│   ├── 165_compareVersionNumbers.md
│   ├── 1663_smallestStringWithAGivenNumericValue.md
│   ├── 1672_richestCustomerWealth.md
│   ├── 1675_minimizeDeviationInArray.md
│   ├── 167_twoSumII_inputArrayIsSorted.md
│   ├── 1696_jumpGameVI.md
│   ├── 169_majorityElement.md
│   ├── 1700.1799.md
│   ├── 1710_maximumUnitsOnATruck.md
│   ├── 171_excelSheetColumnNumber.md
│   ├── 1732_findHighestAltitude.md
│   ├── 1770_maxScoreForMultiplicationOperation.md
│   ├── 1773_countItemsMatchingARule.md
│   ├── 1800-1899.md
│   ├── 1832_checkIfSentenceIsPanagram.md
│   ├── 18_4sum.md
│   ├── 1854_maximumPopulationYear.md
│   ├── 1886_determineWhetherMatrixCanBeObtainedByRotation.md
│   ├── 188_bestTimeToBuyAndSellStockIV.md
│   ├── 189_rotateArray.md
│   ├── 1900-1999.md
│   ├── 190_reverseBits.md
│   ├── 191_numberOf1Bits.md
│   ├── 1920_buildArrayFromPermutation.md
│   ├── 1929_ConcatenationOfArray.md
│   ├── 1971_findIfPathExistsInGraph.md
│   ├── 198_houseRobber.md
│   ├── 199_binaryTreeRightSideView.md
│   ├── 19_removeNthNodeFromEndOfList.md
│   ├── 1_twoSum.md
│   ├── 200-299.md
│   ├── 203_removeLinkedListElement.md
│   ├── 206_reverseLinkedList.md
│   ├── 20_validParentheses.md
│   ├── 210_courseScheduleII.md
│   ├── 216_combinationSumIII.md
│   ├── 217_containsDuplicate.md
│   ├── 219_containsDuplicateII.md
│   ├── 21_mergeTwoSortedList.md
│   ├── 221_maximalSquare.md
│   ├── 222_countCompleteTreeNodes.md
│   ├── 226_invertBinaryTree.md
│   ├── 227_basicCalculatorII.md
│   ├── 228_summaryRanges.md
│   ├── 229_majorityElementII.md
│   ├── 22_generateParentheses.md
│   ├── 230_kthSmallestElementInABST.md
│   ├── 231_powerOfTwo.md
│   ├── 232_implementQueueUsingStacks.md
│   ├── 234_palindromeLinkedList.md
│   ├── 235_lowestCommonAncestorOfBst.md
│   ├── 236_lowestCommonAncestorOfABinaryTree.md
│   ├── 237_deleteNodeInLL.md
│   ├── 238_productOfArrayExceptSelf.md
│   ├── 242_validAnagram.md
│   ├── 24_swapNodesInPairs.md
│   ├── 258_addDigits.md
│   ├── 260_singleNumberIII.md
│   ├── 268_missingNumber.md
│   ├── 26_removeDuplicatesFromSortedArray.md
│   ├── 278_firstBadVersion.md
│   ├── 283_moveZeros.md
│   ├── 287_findDuplicateNumber.md
│   ├── 290_wordPattern.md
│   ├── 299_bullsAndCows.md
│   ├── 2_addWtoNumbers.md
│   ├── 300-399.md
│   ├── 304_rangeSumQuery2D_Immutable.md
│   ├── 309_bestTimeToBuyAndSellStockWithCooldown.md
│   ├── 310_minimumHeightTrees.md
│   ├── 316_removeDuplicateLetters.md
│   ├── 31_nextPermutation.md
│   ├── 322_coinChange.md
│   ├── 329_longestIncreasingPathInAMatrix.md
│   ├── 338_countingBits.md
│   ├── 342_powerOfFour.md
│   ├── 344_reverseString.md
│   ├── 350_intersectionOfTwoArraysII.md
│   ├── 35_searchInsertPosition.md
│   ├── 36_validSudoku.md
│   ├── 37_sudokuSolver.md
│   ├── 382_linkedListRandomNode.md
│   ├── 383_ransomNote.md
│   ├── 387_firstUniqueCharacterInAString.md
│   ├── 389_findTheDifference.md
│   ├── 392_isSubsequence.md
│   ├── 39_combinationSum.md
│   ├── 3_longestSubstringWithoutRepeatingCharacters.md
│   ├── 400-499.md
│   ├── 402_removeKDigits.md
│   ├── 404_sumOfLeftLeaves.md
│   ├── 413_arithmeticSlices.md
│   ├── 429_naryTreeLevelTraversal.md
│   ├── 42_trappingRainWater.md
│   ├── 438_findAllAnagramsInAString.md
│   ├── 441_arrangingCoins.md
│   ├── 448_findAllNumbersDisappearedInAnArray.md
│   ├── 450_deleteNodeInBst.md
│   ├── 452_minimumNumberOfArrowsToBurstBalloons.md
│   ├── 454_4sumII.md
│   ├── 461_hammingDistance.md
│   ├── 46_permutations.md
│   ├── 485_maxConsecutiveOnes.md
│   ├── 48_rotate_image.md
│   ├── 492_constructTheRectangle.md
│   ├── 493_reversePairs.md
│   ├── 49_groupAnagrams.md
│   ├── 500-599.md
│   ├── 50_powXn.md
│   ├── 515_findLargestValueInEachTreeRow.md
│   ├── 518_coinChange2.md
│   ├── 51_nQueens.md
│   ├── 523_continuousSubarraySum.md
│   ├── 525_contiguousArray.md
│   ├── 52_nQueensII.md
│   ├── 532_kdiffPairsInAnArray.md
│   ├── 53_maximumSubarray.md
│   ├── 540_singleElementInASortedArray.md
│   ├── 542_01Matrix.md
│   ├── 547_numberOfProvinces.md
│   ├── 551_studentAttendanceRecordI.md
│   ├── 557_reverseWordsInString.md
│   ├── 560_subarraySumEqualsK.md
│   ├── 566_reshapeMatrix.md
│   ├── 567_permutationInString.md
│   ├── 56_mergeIntervals.md
│   ├── 576_outOfBoundaryPaths.md
│   ├── 600-699.md
│   ├── 605_canPlaceFlowers.md
│   ├── 617_mergeTwoBinaryTrees.md
│   ├── 61_rotateList.md
│   ├── 62_uniquePaths.md
│   ├── 637_averageOfLevels.md
│   ├── 63_uniquePathII.md
│   ├── 64_minimumPathSum.md
│   ├── 653_twoSumIV.md
│   ├── 662_maxWidthOfBinaryTree.md
│   ├── 668_kthSmallestNumberInMultiplicationTable.md
│   ├── 682_baseballGame.md
│   ├── 695_maxAreaOfIsland.md
│   ├── 700-799.md
│   ├── 700_searchInABinarySearchTree.md
│   ├── 701_insertIntoABinarySearchTree.md
│   ├── 704_binarySearch.md
│   ├── 705_designHashSet.md
│   ├── 706_designHashMap.md
│   ├── 70_climbingStairs.md
│   ├── 71_simplifyPath.md
│   ├── 721_accountsMerge.md
│   ├── 733_flood_Fill.html
│   ├── 733_flood_Fill.txt
│   ├── 739_dailyTemperatures.md
│   ├── 73_setMatrixZeroes.md
│   ├── 740_deleteAndEarn.md
│   ├── 746_minCostClimbingStairs.md
│   ├── 74_search2DMatrix.md
│   ├── 75_sortColors.md
│   ├── 76_minimumWindowSubstring.md
│   ├── 77_combinations.md
│   ├── 784_letterCasePermutation.MD
│   ├── 78_subsets.md
│   ├── 790_dominoAndTrominoTiling.md
│   ├── 792_numberOfMatchingSubsequences.md
│   ├── 797_allPathsFromSourceToTarget.md
│   ├── 799_champagneTower.md
│   ├── 800-899.md
│   ├── 82_removeDuplicatesFromSortedListII.md
│   ├── 832_flippingAnImage.md
│   ├── 83_removeDuplicatesFromSortedList.md
│   ├── 856_scoreOfParentheses.md
│   ├── 867_transposeMatrix.md
│   ├── 86_partitionList.md
│   ├── 875_kokoEatingBananas.md
│   ├── 876_middleOfTheLinkedList.md
│   ├── 881_boatsToSavePeople.md
│   ├── 88_mergeSortedArray.md
│   ├── 8_stringToInteger.md
│   ├── 900-999.md
│   ├── 91_decodeWays.md
│   ├── 931_minimumFallingPathSum.md
│   ├── 938_rangeSumOfBst.md
│   ├── 946_validateStackSequences.md
│   ├── 94_binaryTreeInorderTraversal.md
│   ├── 96_uniqueBinarySearchTrees.md
│   ├── 977_squaresOfASortedArray.md
│   ├── 97_interleavingString.md
│   ├── 980_uniquePathsIII.md
│   ├── 986_intervalListIntersections.md
│   ├── 989_addToArrayFormOfInteger.md
│   ├── 98_validateBinarySearchTree.md
│   ├── 991_brokenCalculator.md
│   ├── 994_rotatingOranges.md
│   ├── 997_findTheTownJudge.md
│   ├── 99_recoverBinarySearchTree.md
│   ├── generalApproachToLevelOrder.md
│   └── README.md
├── LICENSE
├── OOPs
│   ├── 1_introduction.md
│   ├── 2_classesAndObjects.md
│   ├── 3_constructorsAndDestructors.md
│   ├── 4_thisPointerAndCopy.md
│   ├── 5_pillarsOfOOPs.md
│   ├── 6_problems.md
│   ├── 7_abstractClassAndFriendFunction.md
│   └── README.md
├── pdfs
│   ├── 10_BitManipulation.pdf
│   ├── 1_RecursionBacktracking.pdf
│   ├── 2_LinkedList.pdf
│   ├── 3_StacksQueues.pdf
│   ├── 4_Trees-1.pdf
│   ├── 5_Trees-2.pdf
│   ├── 6_Graph-1.pdf
│   ├── 7_Graph-2.pdf
│   ├── 8_DynamicProgramming-1.pdf
│   ├── 9_DynamicProgramming-2.pdf
│   └── README.md
├── README.md
├── SDE-Sheet
│   ├── DAY_1
│   │   ├── 1_setMatrixZeros.md
│   │   ├── 2_pascalTriangle.md
│   │   ├── 3_nextPermutation.md
│   │   ├── 4_kadanesAlgorithm.md
│   │   ├── 5_sort012.md
│   │   └── 6_buyAndSellStock.md
│   ├── DAY_10
│   │   ├── 1_permutations.md
│   │   ├── 2_nQueenProblem.md
│   │   └── 3_validSudoku.md
│   ├── DAY_11
│   │   ├── 1_nthRootOfM.md
│   │   ├── 2_matrixMedian.md
│   │   ├── 3_singleElementInSortedArray.md
│   │   ├── 4_searchInRotatedSortedArray.md
│   │   ├── 5_medianOfTwoSortedArray.md
│   │   ├── 6_kthElementOfTwoSortedArrays.md
│   │   ├── 7_allocatePages.md
│   │   └── 8_aggressiveCows.md
│   ├── DAY_12
│   │   ├── 1_heapImplementation.md
│   │   ├── 2_kthLargestElement.md
│   │   ├── 3_kMaxSumCombinations.md
│   │   ├── 4_findMedianInDataStream.md
│   │   ├── 5_mergeKSortedArrays.md
│   │   └── 6_kMostFrequentElements.md
│   ├── DAY_13
│   │   ├── 1_stackArrayImplementation.md
│   │   ├── 2_queueArrayImplementation.md
│   │   ├── 3_stackUsingQueue.md
│   │   ├── 4_queueUsingStack.md
│   │   ├── 5_balancedParenthesis.md
│   │   ├── 6_nextGreaterElement.md
│   │   └── 7_sortAStack.md
│   ├── DAY_14
│   │   ├── 10_theCelebrityProblem.md
│   │   ├── 1_nextSmallerElement.md
│   │   ├── 2_lruCache.md
│   │   ├── 3_lfuCache.md
│   │   ├── 4_largestRectangleInHistogram.md
│   │   ├── 5_slidingWindowMaximum.md
│   │   ├── 6_minStack.md
│   │   ├── 7_rottenOrange.md
│   │   ├── 8_stockSpanProblem.md
│   │   └── 9_maxOfMinOfEveryWindow.md
│   ├── DAY_15
│   │   ├── 1_reverseWord.md
│   │   ├── 2_longestPalindromicSubstring.md
│   │   ├── 3_romanToInt.md
│   │   ├── 4_atoiImplementation.md
│   │   ├── 5_lcp.md
│   │   └── 6_rabinKarp.md
│   ├── DAY_16
│   │   ├── 1_zFunction.md
│   │   ├── 2_KMP.md
│   │   ├── 4_checkAnagrams.md
│   │   ├── 5_countAndSay.md
│   │   └── 6_compareVersionNumber.md
│   ├── DAY_17
│   │   ├── 10_maxWidthOfBinaryTree.md
│   │   ├── 1_inorderTraversal.md
│   │   ├── 2_preorderTraversal.md
│   │   ├── 3_postorderTraversal.md
│   │   ├── 4_leftViewOfBinaryTree.md
│   │   ├── 5_bottomViewOfBinaryTree.md
│   │   ├── 6_topViewOfBinaryTree.md
│   │   ├── 7_3traversalInOne.md
│   │   ├── 8_verticalOrderTraversal.md
│   │   └── 9_rootToNodePath.md
│   ├── DAY_18
│   │   ├── 1_levelOrderTraversal.md
│   │   ├── 2_heightOfBinaryTree.md
│   │   ├── 3_diameterOfBinaryTree.md
│   │   ├── 4_heightBalancedBinaryTree.md
│   │   ├── 5_lcaOfBinaryTree.md
│   │   ├── 6_sameTree.md
│   │   ├── 7_zigZagTraversal.md
│   │   └── 8_boundryTraversalOfBT.md
│   ├── DAY_2
│   │   ├── 2_mergeIntervals.md
│   │   ├── 3_mergeSortedArrays.md
│   │   ├── 4_findDuplicateInArray.md
│   │   ├── 5_repeatingAndMissingNumber.md
│   │   └── 6_countInversions.md
│   ├── DAY_3
│   │   ├── 1_searchIn2DMatrix.md
│   │   ├── 2_powXN.md
│   │   ├── 3_majorityElementN2.md
│   │   ├── 4_majorityElementN3.md
│   │   ├── 5_gridUniquePath.md
│   │   └── 6_reversePairs.md
│   ├── DAY_4
│   │   ├── 1_2sum.md
│   │   ├── 2_4sum.md
│   │   ├── 3_LongestConsecutiveSequence.md
│   │   ├── 4_largestSubarrayZeroSum.md
│   │   ├── 5_countNoOfSubArrayWithGivenXOR.md
│   │   └── 6_longestSubstringWithoutRepeat.md
│   ├── DAY_5
│   │   ├── 1_ReverseLinkedList.md
│   │   ├── 2_findMiddleOfLinkedList.md
│   │   ├── 3_mergeTWoSortedLists.md
│   │   ├── 4_removeNthNodeFromBack.md
│   │   ├── 5_deleteGivenNode.md
│   │   └── 6_addTwoNumbersAsLList.md
│   ├── DAY_6
│   │   ├── 1_findIntersectionPointOfYLinkedList.md
│   │   ├── 2_detectCycleInLL.md
│   │   ├── 4_isLLPalindrome.md
│   │   ├── 5_startingPointOfLL.md
│   │   └── 6_flatteningOfLL.md
│   ├── DAY_7
│   │   ├── 1_rotateLL.md
│   │   ├── 2_cloneLLWithRandomAndNextPointer.md
│   │   ├── 3_3sum.md
│   │   ├── 4_trappingRainwater.md
│   │   └── 6_removeDuplicates.md
│   ├── DAY_8
│   │   ├── 1_N_meeting_in_one_room.md
│   │   ├── 2_minimum_platforms.md
│   │   ├── 3_job_sequencing.md
│   │   ├── 4_fractional_knapsack.md
│   │   └── 5_minimum_coins.md
│   ├── DAY_9
│   │   ├── 1_subsetSum.md.md
│   │   ├── 2_subsetSumII.md
│   │   ├── 3_combinationSumI.md
│   │   ├── 4_combinationSumII.md
│   │   ├── 5_palindromePartitioning.md
│   │   └── 6_kthPermutationSequence.md
│   ├── README.md
│   └── SDE-SHEET.pdf
├── SUMMARY.md
├── test.cpp
└── Topic-Wise
    ├── Binary_search
    │   ├── 1_binarySearch.md
    │   ├── 2_firstAndLastOccur.md
    │   ├── 3_numberOfTimesRotated.md
    │   ├── 4_findInRotated.md
    │   └── README.md
    ├── Disjoint_Set_Union
    │   └── DSU.md
    ├── Dynamic_Programming
    │   ├── AV1_01knapsack.md
    │   ├── AV10_coinChange_II.md
    │   ├── AV11_longestCommonSubSequence.md
    │   ├── AV12_longestCommonSubstring.md
    │   ├── AV13_printLCS.md
    │   ├── AV14_shortestCommonSupersequence.md
    │   ├── AV15_minDelAndIns.md
    │   ├── AV16_longestPalindromicSubsequence.md
    │   ├── AV17_minDelToMakePalindrome.md
    │   ├── AV18_printSCS.md
    │   ├── AV19_longestRepeatedSubsequence.md
    │   ├── AV20_matrixChainMultiplication.md
    │   ├── AV21_Palindrome_Partitioning.md
    │   ├── AV22_booleanParenthesization.md
    │   ├── AV23_scrambleString.md
    │   ├── AV24_eggDroping.md
    │   ├── AV25_diameterOfBinaryTree.md
    │   ├── AV26_maximumPathSum.md
    │   ├── AV27_maxPathSumLeafNode.md
    │   ├── AV2_subSetSum.md
    │   ├── AV3_equalSumPartition.md
    │   ├── AV4_countSubSetSumWithGivenSum.md
    │   ├── AV5_minSubSetSumDifference.md
    │   ├── AV6_countSubsetWithGivenDifference.md
    │   ├── AV7_unboundedKnapsack.md
    │   ├── AV8_rodCutting.md
    │   ├── AV9_coinChange_I.md
    │   └── README.md
    ├── Dynamic_programming_TUF
    │   ├── 10_MinimumPathSum.md
    │   ├── 11.triangle.md
    │   ├── 12_MaximumPathSum.md
    │   ├── 13_chocolatePickup.md
    │   ├── 14_subsetSumEqualsK.md
    │   ├── 15_PartitionEqualSubsetSum.md
    │   ├── 16_MinimumSubsetSumDifference.md
    │   ├── 17_CountSubsetWithTargetSum.md
    │   ├── 18_PartitionWithGivenDifference.md
    │   ├── 19_0-1Knapsack.md
    │   ├── 1_fibonacciNumbers.md
    │   ├── 20_MinimumElements.md
    │   ├── 21_TargetSum.md
    │   ├── 22_coinChangeII.md
    │   ├── 23_UnboundedKnapsack.md
    │   ├── 24_RodCutting.md
    │   ├── 25_LongestCommonSubsequence.md
    │   ├── 26_PrintLCS.md
    │   ├── 27_LongestCommonSubstring.md
    │   ├── 28_LongestPalindromicSubsequence.md
    │   ├── 29_minimumInsertionsToMakeAStringPalindrome.md
    │   ├── 2_climbingStairs.md
    │   ├── 30_deletionAndInsertionsRequireToConvertStringAToB.md
    │   ├── 31_ShortestCommonSupersequence.md
    │   ├── 32_DistinctSubsequences.md
    │   ├── 33_EditDistance.md
    │   ├── 34_WildcardMatching.md
    │   ├── 35_BestTimeToBuyAndSellStock.md
    │   ├── 36_BestTimeToBuyAndSellStockII.md
    │   ├── 37_BestTimeToBuyAndSellStockIII.md
    │   ├── 38_BestTimeToBuyAndSellStockIV.md
    │   ├── 39_BestTimeToBuyAndSellStockWithCooldown.md
    │   ├── 3_frogJump.md
    │   ├── 40_BestTimeToBuyAndSellStockWithTransactionFee.md
    │   ├── 41_LongestIncreasingSubsequence.md
    │   ├── 42_LIScontinued.md
    │   ├── 43_LISsolvedWithBS.md
    │   ├── 44_LargestDivisibleSubset.md
    │   ├── 45_LongestStringChain.md
    │   ├── 46_LongestBitonicSequence.md
    │   ├── 47_NumberOfLIS.md
    │   ├── 48_MatrixChainMultiplication.md
    │   ├── 49_MCMcontinued.md
    │   ├── 4_KfrogJump.md
    │   ├── 50_MinCostToCutAStick.md
    │   ├── 51_BurstBalloons.md
    │   ├── 52_EvaluateExpressionToTrue.md
    │   ├── 53_PalindromePartitioningII.md
    │   ├── 54_PartitionArrayForMaximumSum.md
    │   ├── 55_MaximalRectangle.md
    │   ├── 56_CountSquareSubmatricesWithAllOnes.md
    │   ├── 5_MaximumSum.md
    │   ├── 6_HouseRobberII.md
    │   ├── 7_ninjasTraining.md
    │   ├── 8_UniquePaths.md
    │   ├── 9_UniquePathII.md
    │   └── README.md
    ├── graph
    │   ├── R10_bipartiteGraphDfs.md
    │   ├── R11_topoSortDFS.md
    │   ├── R12_topoSortBFS.md
    │   ├── R13_shortedPathUndirectedUnitWt.md
    │   ├── R14_shortestPathDAG.md
    │   ├── R15_Dijkstra's_Algorithm.md
    │   ├── R16_primsAlgo.md
    │   ├── R17_primsAlgoEfficient.md
    │   ├── R17_zprimsAlgoWeightedEdgeGFG.md
    │   ├── R18_KruskalAlgo.md
    │   ├── R19_bridges.md
    │   ├── R1_AdjacencyListRepresentation.md
    │   ├── R20_articulation.md
    │   ├── R21_kosaraju.md
    │   ├── R22_bellmanFord.md
    │   ├── R2_AdjacencyMatrixRepresentation.md
    │   ├── R3_BreadthFirstSearch.md
    │   ├── R4_DepthFirstSearch.md
    │   ├── R5_cycleDetectionUGBFS.md
    │   ├── R6_cycleDetectionUGDFS.md
    │   ├── R7_cycleDetectionDGBFS.md
    │   ├── R8_cycleDetectionDGDFS.md
    │   └── R9_bipartiteGraphBfs.md
    ├── graph_striver_new
    │   ├── 10_detect_cycle.md
    │   ├── 11_0_1_matrix.md
    │   ├── 12_replace_Os_with_Xs.md
    │   ├── 13_number_of_enclaves.md
    │   ├── 14_number_of_distinct_islands.md
    │   ├── 15_bipartite_graph.md
    │   ├── 16_detect_cycle_directed.md
    │   ├── 17_eventual_safe_state.md
    │   ├── 18_topological_sort.md
    │   ├── 19_kahns_algorithm.md
    │   ├── 1_introduction.md
    │   ├── 20_course_schedule.md
    │   ├── 21_alien_dictionary.md
    │   ├── 22_shortest_path_acyclic_graph.md
    │   ├── 23_sp_in_weighted_undirected_graph.md
    │   ├── 24_word_ladder.md
    │   ├── 2_graph_representation.md
    │   ├── 3_connected_components.md
    │   ├── 4_bfs.md
    │   ├── 5_dfs.md
    │   ├── 6_number_of_provinces.md
    │   ├── 7_number_of_islands.md
    │   ├── 8_flood_fill.md
    │   ├── 9_rotten_oranges.md
    │   ├── assets
    │   │   ├── g1.png
    │   │   └── g3.png
    │   └── README.md
    ├── heap
    │   ├── 1_kth_smallest.md
    │   ├── 2_k_largest_elments.md
    │   ├── 3_sort_k_sorted_array.md
    │   ├── 4_k_closest_elements.md
    │   ├── 5_top_k_frequent_element.md
    │   ├── 6_frequency_sort.md
    │   ├── 7_k_closest_point_to_origin.md
    │   ├── 8_connect_ropes_to_minimize_cost.md
    │   ├── 9_sum_between_k1_and_k2.md
    │   ├── creation_heap.md
    │   └── insertion_and_deletion_in_heap.md
    ├── linked_list
    │   ├── 1_Print_ll.md
    │   ├── 2_reverse_ll.md
    │   ├── 3_rotate_clockwise.md
    │   ├── 4_occurance_of_integer_in_ll.md
    │   ├── 5_pairwise_swap_element.md
    │   ├── LinkedListFunctions.md
    │   └── README.md
    ├── Miscellaneous
    │   ├── README.md
    │   └── recursion.md
    ├── Number_Theory
    │   ├── 1_PrimalityTest.md
    │   ├── 2_SieveOfEratosthenes.md
    │   ├── 3_PrimeFactorization.md
    │   └── README.md
    ├── queue
    │   ├── 1_generate_binary_numbers.md
    │   ├── 2_maximum_sum.md
    │   ├── 3_reverse_first_k_elements.md
    │   ├── 4_maximum_of_all_subarray_size_k.md
    │   ├── 5_Steps_by_Knight.md
    │   ├── queueImplimentation.cpp
    │   └── README.md
    ├── README.md
    ├── recursion
    │   ├── AV10_letter_case_permutation.md
    │   ├── AV11_balanced_parenthesis.md
    │   ├── AV12_nbit_binary.md
    │   ├── AV13_josephas_problem.md
    │   ├── AV1_sort_an_array.md
    │   ├── AV2_sort_a_stack.md
    │   ├── AV3_delete_middle_element_of_stack.md
    │   ├── AV4_reverse_the_stack.md
    │   ├── AV5_kth_symbol_in_grammar.md
    │   ├── AV6_tower_of_hanoi.md
    │   ├── AV7_subset_of_string.md
    │   ├── AV8_permutations_with_spaces.md
    │   ├── AV9_permutation_with_case_change.md
    │   └── README.md
    ├── Sorting_Algorithms
    │   ├── 1_BubbleSort.md
    │   ├── 2_SelectionSort.md
    │   ├── 3_InsertionSort.md
    │   ├── 4_MergeSort.md
    │   ├── 5_QuickSort.md
    │   ├── 6_HeapSort.md
    │   └── README.md
    ├── stack
    │   ├── 1_next_greater_element.md
    │   ├── 2_next_greater_element.md
    │   ├── 3_nearest_smaller_element.md
    │   ├── 4_nearest_smaller_element.md
    │   ├── 5_stock_span_problem.md
    │   ├── 6_maximum_area_of_histogram.md
    │   ├── 7_max_area_rectangle.md
    │   ├── 8_minimum_element_in_stack.md
    │   ├── 9_maximum_of_minimum_for_every_window_size.md
    │   ├── README.md
    │   ├── StackFunctions.cpp
    │   ├── stackFunctions.md
    │   └── StackFunctionsUserDefStack.cpp
    ├── tree
    │   ├── 1_count_nodes.md
    │   ├── 2_right_view_of_binary_tree.md
    │   ├── 3_mirror_view.md
    │   ├── 4_diameter_of_binary_tree.md
    │   ├── 5_sum_tree.md
    │   ├── 6_spiral_print.md
    │   ├── 7_tree_identical.md
    │   ├── 8_root_to_leaf_path_sum.md
    │   ├── binary_tree.cpp
    │   ├── deletion_in_bt.md
    │   ├── diameter_of_bt.md
    │   ├── insertion_in_bt.md
    │   ├── lca_in_bt.md
    │   ├── left_right_top_bottom_view.md
    │   ├── Level_order_traversal_bt.md
    │   ├── mirror_of_bt.md
    │   └── traversal_in_bt.md
    └── Trie
        └── 1_implementTrie.md