🎉 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! 🚀
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 😀 |
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