gitextract_9q_nrc1i/ ├── .gitignore ├── README.md ├── algorithms/ │ ├── cpp/ │ │ ├── 3Sum/ │ │ │ └── 3Sum.cpp │ │ ├── 3SumClosest/ │ │ │ └── 3SumClosest.cpp │ │ ├── 4Sum/ │ │ │ └── 4Sum.cpp │ │ ├── FindValidMatrixGivenRowAndColumnSums/ │ │ │ └── FindValidMatrixGivenRowAndColumnSums.cpp │ │ ├── LRUCache/ │ │ │ └── LRUCache.cpp │ │ ├── NumberOfWaysToSplitString/ │ │ │ └── NumberOfWaysToSplitString.cpp │ │ ├── UTF8Validation/ │ │ │ └── UTF8Validation.cpp │ │ ├── accountsMerge/ │ │ │ └── AccountsMerge.cpp │ │ ├── addAndSearchWord/ │ │ │ └── AddAndSearchWord.cpp │ │ ├── addBinary/ │ │ │ └── addBinary.cpp │ │ ├── addDigits/ │ │ │ └── addDigits.cpp │ │ ├── addStrings/ │ │ │ └── AddStrings.cpp │ │ ├── addToArrayFormOfInteger/ │ │ │ └── AddToArrayFormOfInteger.cpp │ │ ├── addTwoNumbers/ │ │ │ └── addTwoNumbers.cpp │ │ ├── additiveNumber/ │ │ │ └── AdditiveNumber.cpp │ │ ├── anagrams/ │ │ │ ├── GroupAnagrams.cpp │ │ │ └── ValidAnagram.cpp │ │ ├── arithmeticSlices/ │ │ │ └── ArithmeticSlices.cpp │ │ ├── backspaceStringCompare/ │ │ │ └── BackspaceStringCompare.cpp │ │ ├── balancedBinaryTree/ │ │ │ └── balancedBinaryTree.cpp │ │ ├── basicCalculator/ │ │ │ ├── BasicCalculator.II.cpp │ │ │ └── BasicCalculator.cpp │ │ ├── bestTimeToBuyAndSellStock/ │ │ │ ├── BestTimeToBuyAndSellStockWithCooldown.cpp │ │ │ ├── BestTimeToBuyAndSellStockWithTransactionFee.cpp │ │ │ ├── bestTimeToBuyAndSellStock.II.cpp │ │ │ ├── bestTimeToBuyAndSellStock.III.cpp │ │ │ ├── bestTimeToBuyAndSellStock.IV.cpp │ │ │ └── bestTimeToBuyAndSellStock.cpp │ │ ├── binarySearchTreeIterator/ │ │ │ └── binarySearchTreeIterator.cpp │ │ ├── binaryTreeInorderTraversal/ │ │ │ └── binaryTreeInorderTraversal.cpp │ │ ├── binaryTreeLevelOrderTraversal/ │ │ │ ├── binaryTreeLevelOrderTraversal.II.cpp │ │ │ └── binaryTreeLevelOrderTraversal.cpp │ │ ├── binaryTreeMaximumPathSum/ │ │ │ └── binaryTreeMaximumPathSum.cpp │ │ ├── binaryTreePaths/ │ │ │ └── binaryTreePaths.cpp │ │ ├── binaryTreePostorderTraversal/ │ │ │ └── binaryTreePostorderTraversal.cpp │ │ ├── binaryTreePreorderTraversal/ │ │ │ └── binaryTreePreorderTraversal.cpp │ │ ├── binaryTreeRightSideView/ │ │ │ └── binaryTreeRightSideView.cpp │ │ ├── binaryTreeUpsideDown/ │ │ │ └── binaryTreeUpsideDown.cpp │ │ ├── binaryTreeZigzagLevelOrderTraversal/ │ │ │ └── binaryTreeZigzagLevelOrderTraversal.cpp │ │ ├── binaryWatch/ │ │ │ └── BinaryWatch.cpp │ │ ├── bitwiseANDOfNumbersRange/ │ │ │ └── BitwiseAndOfNumbersRange.cpp │ │ ├── brokenCalculator/ │ │ │ └── BrokenCalculator.cpp │ │ ├── buddyStrings/ │ │ │ └── BuddyStrings.cpp │ │ ├── buildingBoxes/ │ │ │ └── BuildingBoxes.cpp │ │ ├── bulbSwitcher/ │ │ │ ├── BulbSwitcher.II.cpp │ │ │ ├── BulbSwitcher.III.cpp │ │ │ ├── BulbSwitcher.IV.cpp │ │ │ └── bulbSwitcher.cpp │ │ ├── bullsAndCows/ │ │ │ └── bullsAndCows.cpp │ │ ├── burstBalloons/ │ │ │ └── BurstBalloons.cpp │ │ ├── calculateMoneyInLeetcodeBank/ │ │ │ └── CalculateMoneyInLeetcodeBank.cpp │ │ ├── candy/ │ │ │ └── candy.cpp │ │ ├── checkIfArrayIsSortedAndRotated/ │ │ │ └── CheckIfArrayIsSortedAndRotated.cpp │ │ ├── checkIfBinaryStringHasAtMostOneSegmentOfOnes/ │ │ │ └── CheckIfBinaryStringHasAtMostOneSegmentOfOnes.cpp │ │ ├── checkIfNumberIsASumOfPowersOfThree/ │ │ │ └── CheckIfNumberIsASumOfPowersOfThree.cpp │ │ ├── checkIfOneStringSwapCanMakeStringsEqual/ │ │ │ └── CheckIfOneStringSwapCanMakeStringsEqual.cpp │ │ ├── checkIfTheSentenceIsPangram/ │ │ │ └── CheckIfTheSentenceIsPangram.cpp │ │ ├── checkIfWordEqualsSummationOfTwoWords/ │ │ │ └── CheckIfWordEqualsSummationOfTwoWords.cpp │ │ ├── climbStairs/ │ │ │ └── climbStairs.cpp │ │ ├── cloneGraph/ │ │ │ └── cloneGraph.cpp │ │ ├── closestDessertCost/ │ │ │ └── ClosestDessertCost.cpp │ │ ├── closestRoom/ │ │ │ └── ClosestRoom.cpp │ │ ├── closestSubsequenceSum/ │ │ │ └── ClosestSubsequenceSum.cpp │ │ ├── coinChange/ │ │ │ ├── CoinChange2.cpp │ │ │ └── coinChange.cpp │ │ ├── combinationSum/ │ │ │ ├── combinationSum.II.cpp │ │ │ ├── combinationSum.III.cpp │ │ │ └── combinationSum.cpp │ │ ├── combinationSumIV/ │ │ │ └── combinationSumIV.cpp │ │ ├── combinations/ │ │ │ └── combinations.cpp │ │ ├── compareStringsByFrequencyOfTheSmallestCharacter/ │ │ │ └── CompareStringsByFrequencyOfTheSmallestCharacter.cpp │ │ ├── compareVersionNumbers/ │ │ │ └── compareVersionNumbers.cpp │ │ ├── constructBinaryTreeFromInorderAndPostorderTraversal/ │ │ │ └── constructBinaryTreeFromInorderAndPostorderTraversal.cpp │ │ ├── constructBinaryTreeFromPreorderAndInorderTraversal/ │ │ │ └── constructBinaryTreeFromPreorderAndInorderTraversal.cpp │ │ ├── constructTheLexicographicallyLargestValidSequence/ │ │ │ └── ConstructTheLexicographicallyLargestValidSequence.cpp │ │ ├── containerWithMostWater/ │ │ │ └── containerWithMostWater.cpp │ │ ├── containsDuplicate/ │ │ │ ├── ContainsDuplicate.II.cpp │ │ │ ├── ContainsDuplicate.III.cpp │ │ │ └── ContainsDuplicate.cpp │ │ ├── convertANumberToHexadecimal/ │ │ │ └── ConvertANumberToHexadecimal.cpp │ │ ├── convertSortedArrayToBinarySearchTree/ │ │ │ └── convertSortedArrayToBinarySearchTree.cpp │ │ ├── convertSortedListToBinarySearchTree/ │ │ │ └── convertSortedListToBinarySearchTree.cpp │ │ ├── copyListWithRandomPointer/ │ │ │ └── copyListWithRandomPointer.cpp │ │ ├── countAndSay/ │ │ │ └── countAndSay.cpp │ │ ├── countCompleteTreeNodes/ │ │ │ └── CountCompleteTreeNodes.cpp │ │ ├── countGoodMeals/ │ │ │ └── CountGoodMeals.cpp │ │ ├── countItemsMatchingARule/ │ │ │ └── CountItemsMatchingARule.cpp │ │ ├── countNicePairsInAnArray/ │ │ │ └── CountNicePairsInAnArray.cpp │ │ ├── countNumberOfHomogenousSubstrings/ │ │ │ └── CountNumberOfHomogenousSubstrings.cpp │ │ ├── countNumbersWithUniqueDigits/ │ │ │ └── CountNumbersWithUniqueDigits.cpp │ │ ├── countOddNumbersInAnIntervalRange/ │ │ │ └── CountOddNumbersInAnIntervalRange.cpp │ │ ├── countOfRangeSum/ │ │ │ └── CountOfRangeSum.cpp │ │ ├── countOfSmallerNumbersAfterSelf/ │ │ │ └── countOfSmallerNumbersAfterSelf.cpp │ │ ├── countPairsOfNodes/ │ │ │ └── CountPairsOfNodes.cpp │ │ ├── countPairsWithXorInARange/ │ │ │ └── CountPairsWithXorInARange.cpp │ │ ├── countPrimes/ │ │ │ └── CountPrimes.cpp │ │ ├── countingBits/ │ │ │ └── CountingBits.cpp │ │ ├── courseSchedule/ │ │ │ ├── CourseSchedule.II.cpp │ │ │ ├── CourseSchedule.cpp │ │ │ └── non-recursive/ │ │ │ ├── course_schedule.cpp │ │ │ └── main.cpp │ │ ├── cousinsInBinaryTree/ │ │ │ └── CousinsInBinaryTree.cpp │ │ ├── createMaximumNumber/ │ │ │ └── CreateMaximumNumber.cpp │ │ ├── decodeString/ │ │ │ └── DecodeString.cpp │ │ ├── decodeWays/ │ │ │ └── decodeWays.cpp │ │ ├── decodeXORedPermutation/ │ │ │ └── DecodeXoredPermutation.cpp │ │ ├── deleteNodeInALinkedList/ │ │ │ └── DeleteNodeInALinkedList.cpp │ │ ├── designAuthenticationManager/ │ │ │ └── DesignAuthenticationManager.cpp │ │ ├── detectCapital/ │ │ │ └── DetectCapital.cpp │ │ ├── determineColorOfAChessboardSquare/ │ │ │ └── DetermineColorOfAChessboardSquare.cpp │ │ ├── diameterOfBinaryTree/ │ │ │ └── diameterOfBinaryTree.cpp │ │ ├── differentWaysToAddParentheses/ │ │ │ └── DifferentWaysToAddParentheses.cpp │ │ ├── distinctSubsequences/ │ │ │ └── distinctSubsequences.cpp │ │ ├── distributeCoinsInBinaryTree/ │ │ │ └── DistributeCoinsInBinaryTree.cpp │ │ ├── divideTwoInt/ │ │ │ └── divideTwoInt.cpp │ │ ├── dungeonGame/ │ │ │ └── dungeonGame.cpp │ │ ├── editDistance/ │ │ │ └── editDistance.cpp │ │ ├── eggDropWith2EggsAndNFloors/ │ │ │ └── EggDropWith2EggsAndNFloors.cpp │ │ ├── eliminationGame/ │ │ │ └── EliminationGame.cpp │ │ ├── equalSumArraysWithMinimumNumberOfOperations/ │ │ │ └── EqualSumArraysWithMinimumNumberOfOperations.cpp │ │ ├── evaluateDivision/ │ │ │ └── EvaluateDivision.cpp │ │ ├── evaluateReversePolishNotation/ │ │ │ └── evaluateReversePolishNotation.cpp │ │ ├── evaluateTheBracketPairsOfAString/ │ │ │ └── EvaluateTheBracketPairsOfAString.cpp │ │ ├── excelSheetColumnNumber/ │ │ │ └── excelSheetColumnNumber.cpp │ │ ├── excelSheetColumnTitle/ │ │ │ └── excelSheetColumnTitle.cpp │ │ ├── expressionAddOperators/ │ │ │ └── ExpressionAddOperators.cpp │ │ ├── factorialTrailingZeroes/ │ │ │ └── factorialTrailingZeroes.cpp │ │ ├── fibonacciNumber/ │ │ │ └── FibonacciNumber.cpp │ │ ├── filterRestaurantsByVeganFriendlyPriceAndDistance/ │ │ │ └── FilterRestaurantsByVeganFriendlyPriceAndDistance.cpp │ │ ├── findAllAnagramsInAString/ │ │ │ └── Find-All-Anagrams-in-a-String.cpp │ │ ├── findCenterOfStarGraph/ │ │ │ └── FindCenterOfStarGraph.cpp │ │ ├── findKthLargestXorCoordinateValue/ │ │ │ └── FindKthLargestXorCoordinateValue.cpp │ │ ├── findMedianFromDataStream/ │ │ │ └── FindMedianFromDataStream.cpp │ │ ├── findMinimumInRotatedSortedArray/ │ │ │ ├── findMinimumInRotatedSortedArray.II.cpp │ │ │ └── findMinimumInRotatedSortedArray.cpp │ │ ├── findNearestPointThatHasTheSameXOrYCoordinate/ │ │ │ └── FindNearestPointThatHasTheSameXOrYCoordinate.cpp │ │ ├── findPeakElement/ │ │ │ └── findPeakElement.cpp │ │ ├── findTheDifference/ │ │ │ └── FindTheDifference.cpp │ │ ├── findTheDuplicateNumber/ │ │ │ └── findTheDuplicateNumber.cpp │ │ ├── findTheHighestAltitude/ │ │ │ └── FindTheHighestAltitude.cpp │ │ ├── findTheWinnerOfAnArrayGame/ │ │ │ └── FindTheWinnerOfAnArrayGame.cpp │ │ ├── findTheWinnerOfTheCircularGame/ │ │ │ └── FindTheWinnerOfTheCircularGame.cpp │ │ ├── findXorSumOfAllPairsBitwiseAnd/ │ │ │ └── FindXorSumOfAllPairsBitwiseAnd.cpp │ │ ├── findingMkAverage/ │ │ │ └── FindingMkAverage.cpp │ │ ├── findingTheUsersActiveMinutes/ │ │ │ └── FindingTheUsersActiveMinutes.cpp │ │ ├── firstBadVersion/ │ │ │ └── FirstBadVersion.cpp │ │ ├── firstMissingPositive/ │ │ │ └── firstMissingPositive.cpp │ │ ├── firstUniqueCharacterInAString/ │ │ │ └── FirstUniqueCharacterInAString.cpp │ │ ├── fizzBuzz/ │ │ │ └── FizzBuzz.cpp │ │ ├── flattenBinaryTreeToLinkedList/ │ │ │ └── flattenBinaryTreeToLinkedList.cpp │ │ ├── flattenNestedListIterator/ │ │ │ └── FlattenNestedListIterator.cpp │ │ ├── formArrayByConcatenatingSubarraysOfAnotherArray/ │ │ │ └── FormArrayByConcatenatingSubarraysOfAnotherArray.cpp │ │ ├── fractionToRecurringDecimal/ │ │ │ └── fractionToRecurringDecimal.cpp │ │ ├── frequencyOfTheMostFrequentElement/ │ │ │ └── FrequencyOfTheMostFrequentElement.cpp │ │ ├── friendCircles/ │ │ │ └── FriendCircles.cpp │ │ ├── frogJump/ │ │ │ └── FrogJump.cpp │ │ ├── gameOfLife/ │ │ │ └── GameOfLife.cpp │ │ ├── gasStation/ │ │ │ └── gasStation.cpp │ │ ├── generateParentheses/ │ │ │ └── generateParentheses.cpp │ │ ├── grayCode/ │ │ │ └── grayCode.cpp │ │ ├── greatestCommonDivisorOfStrings/ │ │ │ └── GreatestCommonDivisorOfStrings.cpp │ │ ├── h-Index/ │ │ │ ├── h-Index.II.cpp │ │ │ └── h-Index.cpp │ │ ├── happyNumber/ │ │ │ └── HappyNumber.cpp │ │ ├── houseRobber/ │ │ │ ├── houseRobber.II.cpp │ │ │ ├── houseRobber.cpp │ │ │ └── houseRobberIII.cpp │ │ ├── implementQueueUsingStacks/ │ │ │ └── ImplementQueueUsingStacks.cpp │ │ ├── implementStackUsingQueues/ │ │ │ └── ImplementStackUsingQueues.cpp │ │ ├── implementTriePrefixTree/ │ │ │ └── ImplementTriePrefixTree.cpp │ │ ├── increasingTripletSubsequence/ │ │ │ └── increasingTripletSubsequence.cpp │ │ ├── incrementalMemoryLeak/ │ │ │ └── IncrementalMemoryLeak.cpp │ │ ├── insertDeleteGetRandom/ │ │ │ ├── InsertDeleteGetrandomO1.cpp │ │ │ └── InsertDeleteGetrandomO1DuplicatesAllowed.cpp │ │ ├── insertInterval/ │ │ │ └── insertInterval.cpp │ │ ├── insertionSortList/ │ │ │ └── insertionSortList.cpp │ │ ├── integerBreak/ │ │ │ └── IntegerBreak.cpp │ │ ├── integerReplacement/ │ │ │ └── IntegerReplacement.cpp │ │ ├── integerToEnglishWords/ │ │ │ └── IntegerToEnglishWords.cpp │ │ ├── integerToRoman/ │ │ │ └── integerToRoman.cpp │ │ ├── interleavingString/ │ │ │ └── interleavingString.cpp │ │ ├── intersectionOfTwoArrays/ │ │ │ ├── intersectionOfTwoArrays.cpp │ │ │ └── intersectionOfTwoArraysII.cpp │ │ ├── intersectionOfTwoLinkedLists/ │ │ │ └── intersectionOfTwoLinkedLists.cpp │ │ ├── intervalListIntersectons/ │ │ │ └── IntervalListIntersections.cpp │ │ ├── invertBinaryTree/ │ │ │ └── InvertBinaryTree.cpp │ │ ├── isSubsequence/ │ │ │ └── IsSubsequence.cpp │ │ ├── islandPerimeter/ │ │ │ └── IslandPerimeter.cpp │ │ ├── isomorphicStrings/ │ │ │ └── IsomorphicStrings.cpp │ │ ├── jewelsAndStones/ │ │ │ └── JewelsAndStones.cpp │ │ ├── jumpGame/ │ │ │ ├── jumpGame.II.cpp │ │ │ ├── jumpGame.VII.cpp │ │ │ └── jumpGame.cpp │ │ ├── kthLargestElementInAnArray/ │ │ │ └── KthLargestElementInAnArray.cpp │ │ ├── kthSmallestElementInaBST/ │ │ │ └── KthSmallestElementInABst.cpp │ │ ├── largestColorValueInADirectedGraph/ │ │ │ └── LargestColorValueInADirectedGraph.cpp │ │ ├── largestMergeOfTwoStrings/ │ │ │ └── LargestMergeOfTwoStrings.cpp │ │ ├── largestNumber/ │ │ │ └── largestNumber.cpp │ │ ├── largestNumberAfterMutatingSubstring/ │ │ │ └── LargestNumberAfterMutatingSubstring.cpp │ │ ├── largestPerimeterTriangle/ │ │ │ └── largestPerimeterTriangle.cpp │ │ ├── largestRectangleInHistogram/ │ │ │ └── largestRectangleInHistogram.cpp │ │ ├── largestSubmatrixWithRearrangements/ │ │ │ └── LargestSubmatrixWithRearrangements.cpp │ │ ├── largestSubstringBetweenTwoEqualCharacters/ │ │ │ └── LargestSubstringBetweenTwoEqualCharacters.cpp │ │ ├── latestTimeByReplacingHiddenDigits/ │ │ │ └── LatestTimeByReplacingHiddenDigits.cpp │ │ ├── lengthOfLastWord/ │ │ │ └── lengthOfLastWord.cpp │ │ ├── letterCombinationsOfAPhoneNumber/ │ │ │ └── letterCombinationsOfAPhoneNumber.cpp │ │ ├── lexicographicalNumbers/ │ │ │ └── LexicographicalNumbers.cpp │ │ ├── lexicographicallySmallestStringAfterApplyingOperations/ │ │ │ └── LexicographicallySmallestStringAfterApplyingOperations.cpp │ │ ├── linkedListCycle/ │ │ │ ├── linkedListCycle.II.cpp │ │ │ └── linkedListCycle.cpp │ │ ├── linkedListRandomNode/ │ │ │ └── LinkedListRandomNode.cpp │ │ ├── longerContiguousSegmentsOfOnesThanZeros/ │ │ │ └── LongerContiguousSegmentsOfOnesThanZeros.cpp │ │ ├── longestAbsoluteFilePath/ │ │ │ └── LongestAbsoluteFilePath.cpp │ │ ├── longestCommonPrefix/ │ │ │ └── longestCommonPrefix.cpp │ │ ├── longestConsecutiveSequence/ │ │ │ └── longestConsecutiveSequence.cpp │ │ ├── longestIncreasingPathInAMatrix/ │ │ │ └── LongestIncreasingPathInAMatrix.cpp │ │ ├── longestIncreasingSubsequence/ │ │ │ └── longestIncreasingSubsequence.cpp │ │ ├── longestNiceSubstring/ │ │ │ └── LongestNiceSubstring.cpp │ │ ├── longestPalindrome/ │ │ │ └── LongestPalindrome.cpp │ │ ├── longestPalindromicSubsequence/ │ │ │ └── LongestPalindromicSubsequence.cpp │ │ ├── longestPalindromicSubstring/ │ │ │ └── longestPalindromicSubstring.cpp │ │ ├── longestSubstringOfAllVowelsInOrder/ │ │ │ └── LongestSubstringOfAllVowelsInOrder.cpp │ │ ├── longestSubstringWithAtLeastKRepeatingCharacters/ │ │ │ └── LongestSubstringWithAtLeastKRepeatingCharacters.cpp │ │ ├── longestSubstringWithAtMostTwoDistinctCharacters/ │ │ │ └── longestSubstringWithAtMostTwoDistinctCharacters.cpp │ │ ├── longestSubstringWithoutRepeatingCharacters/ │ │ │ └── longestSubstringWithoutRepeatingCharacters.cpp │ │ ├── longestTurbulentSubarray/ │ │ │ └── LongestTurbulentSubarray.cpp │ │ ├── longestValidParentheses/ │ │ │ └── longestValidParentheses.cpp │ │ ├── lowestCommonAncestorOfABinarySearchTree/ │ │ │ └── LowestCommonAncestorOfABinarySearchTree.cpp │ │ ├── lowestCommonAncestorOfABinaryTree/ │ │ │ └── LowestCommonAncestorOfABinaryTree.cpp │ │ ├── majorityElement/ │ │ │ ├── majorityElement.II.cpp │ │ │ └── majorityElement.cpp │ │ ├── makeTheXorOfAllSegmentsEqualToZero/ │ │ │ └── MakeTheXorOfAllSegmentsEqualToZero.cpp │ │ ├── mapOfHighestPeak/ │ │ │ └── MapOfHighestPeak.cpp │ │ ├── matrixCellsInDistanceOrder/ │ │ │ └── MatrixCellsInDistanceOrder.cpp │ │ ├── maxAreaOfIsland/ │ │ │ └── MaxAreaOfIsland.cpp │ │ ├── maxPointsOnALine/ │ │ │ └── maxPointsOnALine.cpp │ │ ├── maximalRectangle/ │ │ │ └── maximalRectangle.cpp │ │ ├── maximalSquare/ │ │ │ └── MaximalSquare.cpp │ │ ├── maximizeNumberOfNiceDivisors/ │ │ │ └── MaximizeNumberOfNiceDivisors.cpp │ │ ├── maximizePalindromeLengthFromSubsequences/ │ │ │ └── MaximizePalindromeLengthFromSubsequences.cpp │ │ ├── maximizeScoreAfterNOperations/ │ │ │ └── MaximizeScoreAfterNOperations.cpp │ │ ├── maximumAbsoluteSumOfAnySubarray/ │ │ │ └── MaximumAbsoluteSumOfAnySubarray.cpp │ │ ├── maximumAscendingSubarraySum/ │ │ │ └── MaximumAscendingSubarraySum.cpp │ │ ├── maximumAveragePassRatio/ │ │ │ └── MaximumAveragePassRatio.cpp │ │ ├── maximumAverageSubarray/ │ │ │ └── MaximumAverageSubarray.I.cpp │ │ ├── maximumBuildingHeight/ │ │ │ └── MaximumBuildingHeight.cpp │ │ ├── maximumDepthOfBinaryTree/ │ │ │ └── maximumDepthOfBinaryTree.cpp │ │ ├── maximumDistanceBetweenAPairOfValues/ │ │ │ └── MaximumDistanceBetweenAPairOfValues.cpp │ │ ├── maximumElementAfterDecreasingAndRearranging/ │ │ │ └── MaximumElementAfterDecreasingAndRearranging.cpp │ │ ├── maximumErasureValue/ │ │ │ └── MaximumErasureValue.cpp │ │ ├── maximumGap/ │ │ │ └── maximumGap.cpp │ │ ├── maximumIceCreamBars/ │ │ │ └── MaximumIceCreamBars.cpp │ │ ├── maximumNumberOfBallsInABox/ │ │ │ └── MaximumNumberOfBallsInABox.cpp │ │ ├── maximumNumberOfConsecutiveValuesYouCanMake/ │ │ │ └── MaximumNumberOfConsecutiveValuesYouCanMake.cpp │ │ ├── maximumNumberOfEventsThatCanBeAttended/ │ │ │ ├── MaximumNumberOfEventsThatCanBeAttended.II.cpp │ │ │ └── MaximumNumberOfEventsThatCanBeAttended.cpp │ │ ├── maximumNumberOfGroupsGettingFreshDonuts/ │ │ │ └── MaximumNumberOfGroupsGettingFreshDonuts.cpp │ │ ├── maximumNumberOfWordsYouCanType/ │ │ │ └── MaximumNumberOfWordsYouCanType.cpp │ │ ├── maximumPopulationYear/ │ │ │ └── MaximumPopulationYear.cpp │ │ ├── maximumProductOfTwoElementsInAnArray/ │ │ │ └── MaximumProductOfTwoElementsInAnArray.cpp │ │ ├── maximumProductOfWordLengths/ │ │ │ └── MaximumProductOfWordLengths.cpp │ │ ├── maximumProductSubarray/ │ │ │ └── maximumProductSubarray.cpp │ │ ├── maximumScoreFromPerformingMultiplicationOperations/ │ │ │ └── MaximumScoreFromPerformingMultiplicationOperations.cpp │ │ ├── maximumScoreFromRemovingStones/ │ │ │ └── MaximumScoreFromRemovingStones.cpp │ │ ├── maximumScoreFromRemovingSubstrings/ │ │ │ └── MaximumScoreFromRemovingSubstrings.cpp │ │ ├── maximumScoreOfAGoodSubarray/ │ │ │ └── MaximumScoreOfAGoodSubarray.cpp │ │ ├── maximumSubArray/ │ │ │ └── maximumSubArray.cpp │ │ ├── maximumSubarrayMinProduct/ │ │ │ └── MaximumSubarrayMinProduct.cpp │ │ ├── maximumUnitsOnATruck/ │ │ │ └── MaximumUnitsOnATruck.cpp │ │ ├── maximumValueAfterInsertion/ │ │ │ └── MaximumValueAfterInsertion.cpp │ │ ├── maximumValueAtAGivenIndexInABoundedArray/ │ │ │ └── MaximumValueAtAGivenIndexInABoundedArray.cpp │ │ ├── maximumXorForEachQuery/ │ │ │ └── MaximumXorForEachQuery.cpp │ │ ├── medianOfTwoSortedArrays/ │ │ │ └── medianOfTwoSortedArrays.cpp │ │ ├── mergeIntervals/ │ │ │ └── mergeIntervals.cpp │ │ ├── mergeKSortedLists/ │ │ │ └── mergeKSortedLists.cpp │ │ ├── mergeStringsAlternately/ │ │ │ └── MergeStringsAlternately.cpp │ │ ├── mergeTwoSortedArray/ │ │ │ └── mergeTwoSortedArray.cpp │ │ ├── mergeTwoSortedList/ │ │ │ └── mergeTwoSortedList.cpp │ │ ├── minCostClimbingStairs/ │ │ │ └── MinCostClimbingStairs.cpp │ │ ├── minStack/ │ │ │ └── minStack.cpp │ │ ├── miniParser/ │ │ │ └── MiniParser.cpp │ │ ├── minimizeMaximumPairSumInArray/ │ │ │ └── MinimizeMaximumPairSumInArray.cpp │ │ ├── minimumASCIIDeleteSumForTwoStrings/ │ │ │ └── MinimumAsciiDeleteSumForTwoStrings.cpp │ │ ├── minimumAbsoluteSumDifference/ │ │ │ └── MinimumAbsoluteSumDifference.cpp │ │ ├── minimumAdjacentSwapsToReachTheKthSmallestNumber/ │ │ │ └── MinimumAdjacentSwapsToReachTheKthSmallestNumber.cpp │ │ ├── minimumChangesToMakeAlternatingBinaryString/ │ │ │ └── MinimumChangesToMakeAlternatingBinaryString.cpp │ │ ├── minimumCostForTickets/ │ │ │ └── MinimumCostForTickets.cpp │ │ ├── minimumDegreeOfAConnectedTrioInAGraph/ │ │ │ └── MinimumDegreeOfAConnectedTrioInAGraph.cpp │ │ ├── minimumDepthOfBinaryTree/ │ │ │ └── minimumDepthOfBinaryTree.cpp │ │ ├── minimumDistanceToTheTargetElement/ │ │ │ └── MinimumDistanceToTheTargetElement.cpp │ │ ├── minimumElementsToAddToFormAGivenSum/ │ │ │ └── MinimumElementsToAddToFormAGivenSum.cpp │ │ ├── minimumFallingPathSum/ │ │ │ └── MinimumFallingPathSum.cpp │ │ ├── minimumHeightTrees/ │ │ │ └── MinimumHeightTrees.cpp │ │ ├── minimumInsertionsToBalanceAParenthesesString/ │ │ │ └── MinimumInsertionsToBalanceAParenthesesString.cpp │ │ ├── minimumIntervalToIncludeEachQuery/ │ │ │ └── MinimumIntervalToIncludeEachQuery.cpp │ │ ├── minimumLengthOfStringAfterDeletingSimilarEnds/ │ │ │ └── MinimumLengthOfStringAfterDeletingSimilarEnds.cpp │ │ ├── minimumLimitOfBallsInABag/ │ │ │ └── MinimumLimitOfBallsInABag.cpp │ │ ├── minimumNumberOfOperationsToMoveAllBallsToEachBox/ │ │ │ └── MinimumNumberOfOperationsToMoveAllBallsToEachBox.cpp │ │ ├── minimumNumberOfOperationsToReinitializeAPermutation/ │ │ │ └── MinimumNumberOfOperationsToReinitializeAPermutation.cpp │ │ ├── minimumNumberOfPeopleToTeach/ │ │ │ └── MinimumNumberOfPeopleToTeach.cpp │ │ ├── minimumOperationsToMakeArrayEqual/ │ │ │ └── MinimumOperationsToMakeArrayEqual.cpp │ │ ├── minimumOperationsToMakeTheArrayIncreasing/ │ │ │ └── MinimumOperationsToMakeTheArrayIncreasing.cpp │ │ ├── minimumPathSum/ │ │ │ └── minimumPathSum.cpp │ │ ├── minimumSidewayJumps/ │ │ │ └── MinimumSidewayJumps.cpp │ │ ├── minimumSizeSubarraySum/ │ │ │ └── MinimumSizeSubarraySum.cpp │ │ ├── minimumSpeedToArriveOnTime/ │ │ │ └── MinimumSpeedToArriveOnTime.cpp │ │ ├── minimumWindowSubstring/ │ │ │ └── minimumWindowSubstring.cpp │ │ ├── mirrorReflection/ │ │ │ └── MirrorReflection.cpp │ │ ├── missingNumber/ │ │ │ └── MissingNumber.cpp │ │ ├── missingRanges/ │ │ │ └── missingRanges.cpp │ │ ├── mostCommonWord/ │ │ │ └── MostCommonWord.cpp │ │ ├── moveZeroes/ │ │ │ └── moveZeroes.cpp │ │ ├── multiplyStrings/ │ │ │ └── multiplyStrings.cpp │ │ ├── nQueens/ │ │ │ ├── nQueuens.II.cpp │ │ │ └── nQueuens.cpp │ │ ├── nRepeatedElementInSize2NArray/ │ │ │ └── N-Repeated-Element-in-Size-2N-Array.cpp │ │ ├── nextPermutation/ │ │ │ └── nextPermutation.cpp │ │ ├── nimGame/ │ │ │ └── nimGame.cpp │ │ ├── nthDigit/ │ │ │ └── NthDigit.cpp │ │ ├── numberOf1Bits/ │ │ │ └── numberOf1Bits.cpp │ │ ├── numberOfDifferentIntegersInAString/ │ │ │ └── NumberOfDifferentIntegersInAString.cpp │ │ ├── numberOfDifferentSubsequencesGcds/ │ │ │ └── NumberOfDifferentSubsequencesGcds.cpp │ │ ├── numberOfDigitOne/ │ │ │ └── NumberOfDigitOne.cpp │ │ ├── numberOfGoodWaysToSplitAString/ │ │ │ └── NumberOfGoodWaysToSplitAString.cpp │ │ ├── numberOfIslands/ │ │ │ └── NumberOfIslands.cpp │ │ ├── numberOfOrdersInTheBacklog/ │ │ │ └── NumberOfOrdersInTheBacklog.cpp │ │ ├── numberOfRecentCalls/ │ │ │ └── NumberOfRecentCalls.cpp │ │ ├── numberOfRectanglesThatCanFormTheLargestSquare/ │ │ │ └── NumberOfRectanglesThatCanFormTheLargestSquare.cpp │ │ ├── numberOfRestrictedPathsFromFirstToLastNode/ │ │ │ └── NumberOfRestrictedPathsFromFirstToLastNode.cpp │ │ ├── numberOfStudentsUnableToEatLunch/ │ │ │ └── NumberOfStudentsUnableToEatLunch.cpp │ │ ├── numberOfSubArraysWithOddSum/ │ │ │ └── NumberOfSubArraysWithOddSum.cpp │ │ ├── numberOfSubstringsWithOnly1s/ │ │ │ └── NumberOfSubstringsWithOnly1s.cpp │ │ ├── oddEvenLinkedList/ │ │ │ └── OddEvenLinkedList.cpp │ │ ├── oneEditDistance/ │ │ │ └── oneEditDistance.cpp │ │ ├── palindromeLinkedList/ │ │ │ └── PalindromeLinkedList.cpp │ │ ├── palindromeNumber/ │ │ │ └── palindromeNumber.cpp │ │ ├── palindromePairs/ │ │ │ └── PalindromePairs.cpp │ │ ├── palindromePartitioning/ │ │ │ ├── palindromePartitioning.II.cpp │ │ │ └── palindromePartitioning.cpp │ │ ├── palindromicSubstrings/ │ │ │ └── PalindromicSubstrings.cpp │ │ ├── partitionEqualSubsetSum/ │ │ │ └── PartitionEqualSubsetSum.cpp │ │ ├── partitionList/ │ │ │ └── partitionList.cpp │ │ ├── pascalTriangle/ │ │ │ ├── pascalTriangle.II.cpp │ │ │ └── pascalTriangle.cpp │ │ ├── patchingArray/ │ │ │ └── PatchingArray.cpp │ │ ├── pathSum/ │ │ │ ├── pathSum.II.cpp │ │ │ └── pathSum.cpp │ │ ├── peakIndexInAMountainArray/ │ │ │ └── PeakIndexInAMountainArray.cpp │ │ ├── peekingIterator/ │ │ │ └── PeekingIterator.cpp │ │ ├── perfectRectangle/ │ │ │ └── PerfectRectangle.cpp │ │ ├── perfectSquares/ │ │ │ └── PerfectSquares.cpp │ │ ├── permutationSequence/ │ │ │ └── permutationSequence.cpp │ │ ├── permutations/ │ │ │ ├── permutations.II.cpp │ │ │ └── permutations.cpp │ │ ├── plusOne/ │ │ │ └── plusOne.cpp │ │ ├── populatingNextRightPointersInEachNode/ │ │ │ ├── populatingNextRightPointersInEachNode.II.cpp │ │ │ └── populatingNextRightPointersInEachNode.cpp │ │ ├── pow/ │ │ │ └── pow.cpp │ │ ├── powerOfFour/ │ │ │ └── PowerOfFour.cpp │ │ ├── powerOfThree/ │ │ │ └── PowerOfThree.cpp │ │ ├── powerOfTwo/ │ │ │ └── PowerOfTwo.cpp │ │ ├── processTasksUsingServers/ │ │ │ └── ProcessTasksUsingServers.cpp │ │ ├── productOfArrayExceptSelf/ │ │ │ └── ProductOfArrayExceptSelf.cpp │ │ ├── queriesOnNumberOfPointsInsideACircle/ │ │ │ └── QueriesOnNumberOfPointsInsideACircle.cpp │ │ ├── queueReconstructionByHeight/ │ │ │ └── QueueReconstructionByHeight.cpp │ │ ├── randomPickIndex/ │ │ │ └── RandomPickIndex.cpp │ │ ├── randomPointInNonOverlappingRectangles/ │ │ │ └── randomPointInNonOverlappingRectangles.cpp │ │ ├── rangeSumQuery-Immutable/ │ │ │ ├── rangeSumQuery-Immutable.cpp │ │ │ └── rangeSumQuery-Mutable/ │ │ │ └── RangeSumQueryMutable.cpp │ │ ├── rangeSumQuery2D-Immutable/ │ │ │ └── RangeSumQuery2dImmutable.cpp │ │ ├── ransomNote/ │ │ │ └── RansomNote.cpp │ │ ├── readNCharactersGivenRead4/ │ │ │ ├── readNCharactersGivenRead4.II.cpp │ │ │ └── readNCharactersGivenRead4.cpp │ │ ├── reconstructItinerary/ │ │ │ └── ReconstructItinerary.cpp │ │ ├── recoverATreeFromPreorderTraversal/ │ │ │ └── recoverATreeFromPreorderTraversal.cpp │ │ ├── recoverBinarySearchTree/ │ │ │ └── recoverBinarySearchTree.cpp │ │ ├── rectangleArea/ │ │ │ └── RectangleArea.cpp │ │ ├── reformatPhoneNumber/ │ │ │ └── ReformatPhoneNumber.cpp │ │ ├── regularExpressionMatching/ │ │ │ └── regularExpressionMatching.cpp │ │ ├── removeDuplicateLetters/ │ │ │ └── RemoveDuplicateLetters.cpp │ │ ├── removeDuplicatesFromSortedArray/ │ │ │ ├── removeDuplicatesFromSortedArray.II.cpp │ │ │ └── removeDuplicatesFromSortedArray.cpp │ │ ├── removeDuplicatesFromSortedList/ │ │ │ ├── removeDuplicatesFromSortedList.II.cpp │ │ │ └── removeDuplicatesFromSortedList.cpp │ │ ├── removeElement/ │ │ │ └── removeElement.cpp │ │ ├── removeInvalidParentheses/ │ │ │ └── RemoveInvalidParentheses.cpp │ │ ├── removeKDigits/ │ │ │ └── RemoveKDigits.cpp │ │ ├── removeLinkedListElements/ │ │ │ └── RemoveLinkedListElements.cpp │ │ ├── removeNthNodeFromEndOfList/ │ │ │ └── removeNthNodeFromEndOfList.cpp │ │ ├── reorderList/ │ │ │ └── reorderList.cpp │ │ ├── repeatedDNASequences/ │ │ │ └── repeatedDNASequences.cpp │ │ ├── replaceAllDigitsWithCharacters/ │ │ │ └── ReplaceAllDigitsWithCharacters.cpp │ │ ├── restoreIPAddresses/ │ │ │ └── restoreIPAddresses.cpp │ │ ├── restoreTheArrayFromAdjacentPairs/ │ │ │ └── RestoreTheArrayFromAdjacentPairs.cpp │ │ ├── reverseBits/ │ │ │ └── reverseBits.cpp │ │ ├── reverseInteger/ │ │ │ └── reverseInteger.cpp │ │ ├── reverseLinkedList/ │ │ │ ├── reverseLinkedList.II.cpp │ │ │ └── reverseLinkedList.cpp │ │ ├── reverseNodesInKGroup/ │ │ │ └── reverseNodesInKGroup.cpp │ │ ├── reverseString/ │ │ │ └── ReverseString.cpp │ │ ├── reverseVowelsOfAString/ │ │ │ └── reverseVowelsOfAString.cpp │ │ ├── reverseWordsInAString/ │ │ │ ├── reverseWordsInAString.II.cpp │ │ │ └── reverseWordsInAString.cpp │ │ ├── romanToInteger/ │ │ │ └── romanToInteger.cpp │ │ ├── rotateArray/ │ │ │ └── rotateArray.cpp │ │ ├── rotateFunction/ │ │ │ └── RotateFunction.cpp │ │ ├── rotateImage/ │ │ │ └── rotateImage.cpp │ │ ├── rotateList/ │ │ │ └── rotateList.cpp │ │ ├── rotatingTheBox/ │ │ │ └── RotatingTheBox.cpp │ │ ├── sameTree/ │ │ │ └── sameTree.cpp │ │ ├── satisfiabilityOfEqualityEquations/ │ │ │ └── SatisfiabilityOfEqualityEquations.cpp │ │ ├── scrambleString/ │ │ │ └── scrambleString.cpp │ │ ├── search2DMatrix/ │ │ │ ├── search2DMatrix.II.cpp │ │ │ └── search2DMatrix.cpp │ │ ├── searchForRange/ │ │ │ └── searchForRange.cpp │ │ ├── searchInRotatedSortedArray/ │ │ │ ├── searchInRotatedSortedArray.II.cpp │ │ │ └── searchInRotatedSortedArray.cpp │ │ ├── searchInsertPosition/ │ │ │ └── searchInsertPosition.cpp │ │ ├── seatReservationManager/ │ │ │ └── SeatReservationManager.cpp │ │ ├── secondLargestDigitInAString/ │ │ │ └── SecondLargestDigitInAString.cpp │ │ ├── sentenceScreenFitting/ │ │ │ ├── main.cpp │ │ │ ├── sentenceScreenFitting.cpp │ │ │ └── sentenceScreenFitting.h │ │ ├── sentenceSimilarity/ │ │ │ └── SentenceSimilarity.III.cpp │ │ ├── serializeAndDeserializeBinaryTree/ │ │ │ └── SerializeAndDeserializeBinaryTree.cpp │ │ ├── setMatrixZeroes/ │ │ │ └── setMatrixZeroes.cpp │ │ ├── shortEncodingOfWords/ │ │ │ └── ShortEncodingOfWords.cpp │ │ ├── shortestPalindrome/ │ │ │ └── ShortestPalindrome.cpp │ │ ├── shuffleAnArray/ │ │ │ └── ShuffleAnArray.cpp │ │ ├── shuffleString/ │ │ │ └── ShuffleString.cpp │ │ ├── shuffleTheArray/ │ │ │ └── ShuffleTheArray.cpp │ │ ├── signOfTheProductOfAnArray/ │ │ │ └── SignOfTheProductOfAnArray.cpp │ │ ├── simplifyPath/ │ │ │ └── simplifyPath.cpp │ │ ├── singleNumber/ │ │ │ ├── singleNumber.II.cpp │ │ │ ├── singleNumber.III.cpp │ │ │ └── singleNumber.cpp │ │ ├── singleThreadedCpu/ │ │ │ └── SingleThreadedCpu.cpp │ │ ├── slidingWindowMaximum/ │ │ │ └── SlidingWindowMaximum.cpp │ │ ├── smallestStringStartingFromLeaf/ │ │ │ └── SmallestStringStartingFromLeaf.cpp │ │ ├── sortArrayByParity/ │ │ │ ├── SortArrayByParity.II.cpp │ │ │ └── SortArrayByParity.cpp │ │ ├── sortColors/ │ │ │ └── sortColors.cpp │ │ ├── sortList/ │ │ │ └── sortList.cpp │ │ ├── sortingTheSentence/ │ │ │ └── SortingTheSentence.cpp │ │ ├── spiralMatrix/ │ │ │ ├── spiralMatrix.II.cpp │ │ │ └── spiralMatrix.cpp │ │ ├── splitArrayLargestSum/ │ │ │ └── SplitArrayLargestSum.cpp │ │ ├── splittingAStringIntoDescendingConsecutiveValues/ │ │ │ └── SplittingAStringIntoDescendingConsecutiveValues.cpp │ │ ├── sqrt/ │ │ │ └── sqrt.cpp │ │ ├── squaresOfASortedArray/ │ │ │ └── SquaresOfASortedArray.cpp │ │ ├── strStr/ │ │ │ └── strStr.cpp │ │ ├── stringToIntegerAtoi/ │ │ │ └── stringToIntegerAtoi.cpp │ │ ├── stringWithoutAAAOrBBB/ │ │ │ └── StringWithoutAAAOrBBB.cpp │ │ ├── subsets/ │ │ │ ├── subsets.II.cpp │ │ │ └── subsets.cpp │ │ ├── substringWithConcatenationOfAllWords/ │ │ │ └── substringWithConcatenationOfAllWords.cpp │ │ ├── substringsOfSizeThreeWithDistinctCharacters/ │ │ │ └── SubstringsOfSizeThreeWithDistinctCharacters.cpp │ │ ├── sudokuSolver/ │ │ │ └── sudokuSolver.cpp │ │ ├── sumOfBeautyOfAllSubstrings/ │ │ │ └── SumOfBeautyOfAllSubstrings.cpp │ │ ├── sumOfDigitsInBaseK/ │ │ │ └── SumOfDigitsInBaseK.cpp │ │ ├── sumOfDigitsOfStringAfterConvert/ │ │ │ └── SumOfDigitsOfStringAfterConvert.cpp │ │ ├── sumOfEvenNumbersAfterQueries/ │ │ │ └── SumOfEvenNumbersAfterQueries.cpp │ │ ├── sumOfFlooredPairs/ │ │ │ └── SumOfFlooredPairs.cpp │ │ ├── sumOfLeftLeaves/ │ │ │ └── SumOfLeftLeaves.cpp │ │ ├── sumOfTwoIntegers/ │ │ │ └── SumOfTwoIntegers.cpp │ │ ├── sumOfUniqueElements/ │ │ │ └── SumOfUniqueElements.cpp │ │ ├── sumRootToLeafNumber/ │ │ │ └── sumRootToLeafNumber.cpp │ │ ├── summaryRanges/ │ │ │ └── SummaryRanges.cpp │ │ ├── superUglyNumber/ │ │ │ └── SuperUglyNumber.cpp │ │ ├── surroundedRegions/ │ │ │ └── surroundedRegions.cpp │ │ ├── swapNodesInPairs/ │ │ │ └── swapNodesInPairs.cpp │ │ ├── symmetricTree/ │ │ │ └── symmetricTree.cpp │ │ ├── targetSum/ │ │ │ └── targetSum.cpp │ │ ├── textJustification/ │ │ │ └── textJustification.cpp │ │ ├── theSkylineProblem/ │ │ │ └── TheSkylineProblem.cpp │ │ ├── thirdMaximumNumber/ │ │ │ └── ThirdMaximumNumber.cpp │ │ ├── thousandSeparator/ │ │ │ └── ThousandSeparator.cpp │ │ ├── threeConsecutiveOdds/ │ │ │ └── ThreeConsecutiveOdds.cpp │ │ ├── timeBasedKeyValueStore/ │ │ │ └── TimeBasedKeyValueStore.cpp │ │ ├── timeNeededToInformAllEmployees/ │ │ │ └── TimeNeededToInformAllEmployees.cpp │ │ ├── topKFrequentElements/ │ │ │ └── topKFrequentElements.cpp │ │ ├── totalHammingDistance/ │ │ │ └── totalHammingDistance.cpp │ │ ├── trappingRainWater/ │ │ │ └── trappingRainWater.cpp │ │ ├── treeOfCoprimes/ │ │ │ └── TreeOfCoprimes.cpp │ │ ├── triangle/ │ │ │ └── triangle.cpp │ │ ├── triplesWithBitwiseANDEqualToZero/ │ │ │ └── TriplesWithBitwiseAndEqualToZero.cpp │ │ ├── truncateSentence/ │ │ │ └── TruncateSentence.cpp │ │ ├── tupleWithSameProduct/ │ │ │ └── TupleWithSameProduct.cpp │ │ ├── twoArraysEqualByReversingSubArrays/ │ │ │ └── MakeTwoArraysEqualByReversingSubArrays.cpp │ │ ├── twoCityScheduling/ │ │ │ └── TwoCityScheduling.cpp │ │ ├── twoSum/ │ │ │ ├── twoSum.II.cpp │ │ │ ├── twoSum.III.cpp │ │ │ └── twoSum.cpp │ │ ├── uglyNumber/ │ │ │ ├── UglyNumber.II.cpp │ │ │ └── UglyNumber.cpp │ │ ├── uniqueBinarySearchTrees/ │ │ │ ├── uniqueBinarySearchTrees.II.cpp │ │ │ └── uniqueBinarySearchTrees.cpp │ │ ├── uniqueEmailAddresses/ │ │ │ └── UniqueEmailAddresses.cpp │ │ ├── uniqueMorseCodeWords/ │ │ │ └── UniqueMorseCodeWords.cpp │ │ ├── uniqueNumberOfOccurrences/ │ │ │ └── Unique-Number-of-Occurrences.cpp │ │ ├── uniquePaths/ │ │ │ ├── UniquePaths.III.cpp │ │ │ ├── uniquePaths.II.cpp │ │ │ └── uniquePaths.cpp │ │ ├── validNumber/ │ │ │ └── validNumber.cpp │ │ ├── validPalindrome/ │ │ │ └── validPalindrome.cpp │ │ ├── validParentheses/ │ │ │ └── validParentheses.cpp │ │ ├── validPerfectSquare/ │ │ │ └── ValidPerfectSquare.cpp │ │ ├── validSudoku/ │ │ │ └── validSudoku.cpp │ │ ├── validateBinarySearchTree/ │ │ │ └── validateBinarySearchTree.cpp │ │ ├── verifyPreorderSerializationOfABinaryTree/ │ │ │ └── VerifyPreorderSerializationOfABinaryTree.cpp │ │ ├── verticalOrderTraversalOfABinaryTree/ │ │ │ └── VerticalOrderTraversalOfABinaryTree.cpp │ │ ├── videoStitching/ │ │ │ └── VideoStitching.cpp │ │ ├── waysToSplitArrayIntoThreeSubarrays/ │ │ │ └── WaysToSplitArrayIntoThreeSubarrays.cpp │ │ ├── wiggleSort/ │ │ │ └── WiggleSort.II.cpp │ │ ├── wiggleSubsequence/ │ │ │ └── wiggleSubsequence.cpp │ │ ├── wildcardMatching/ │ │ │ └── wildcardMatching.cpp │ │ ├── wordBreak/ │ │ │ ├── wordBreak.II.cpp │ │ │ └── wordBreak.cpp │ │ ├── wordLadder/ │ │ │ ├── wordLadder.II.cpp │ │ │ └── wordLadder.cpp │ │ ├── wordPattern/ │ │ │ └── WordPattern.cpp │ │ ├── wordSearch/ │ │ │ ├── wordSearch.II.cpp │ │ │ └── wordSearch.cpp │ │ └── zigZagConversion/ │ │ └── zigZagConversion.cpp │ ├── golang/ │ │ └── twoSum/ │ │ └── twoSum.go │ ├── java/ │ │ ├── algorithms-java.iml │ │ ├── junit-4.7.jar │ │ └── src/ │ │ ├── LargestNumberAfterMutatingSubstring/ │ │ │ └── largestNumberAfterMutatingSubstring.java │ │ ├── MaxSubArray/ │ │ │ └── MaxSubarray.java │ │ ├── RotateImage/ │ │ │ └── rotateImage.java │ │ ├── balancedBinaryTree/ │ │ │ ├── TreeNode.java │ │ │ ├── balancedBinaryTree.java │ │ │ └── balancedBinaryTreeTest.java │ │ ├── binarySearchTreeIterator/ │ │ │ ├── TreeNode.java │ │ │ ├── binarySearchTreeIterator.java │ │ │ └── binarySearchTreeIteratorTest.java │ │ ├── binaryTreeBFSTraversal/ │ │ │ ├── TreeNode.java │ │ │ ├── binaryTreeBFSTraversal.java │ │ │ └── binaryTreeBFSTraversalTest.java │ │ ├── binaryTreeLevelOrderTraversal/ │ │ │ ├── TreeNode.java │ │ │ ├── binaryTreeLevelOrderTraversal.java │ │ │ └── binaryTreeLevelOrderTraversalTest.java │ │ ├── binaryTreeMaximumPathSum/ │ │ │ ├── TreeNode.java │ │ │ ├── binaryTreeMaximumPathSum.java │ │ │ └── binaryTreeMaximumPathSumTest.java │ │ ├── binaryTreePreorderTraversal/ │ │ │ ├── TreeNode.java │ │ │ ├── binaryTreePreorderTraversal.java │ │ │ └── binaryTreePreorderTraversalTest.java │ │ ├── containerwithmostwater.java │ │ ├── countAndSay/ │ │ │ ├── CountAndSay.java │ │ │ └── TestCountAndSay.java │ │ ├── dynamicProgramming/ │ │ │ ├── climbStairs/ │ │ │ │ ├── climbStairs.java │ │ │ │ └── climbStairsTest.java │ │ │ ├── minimumPathSum/ │ │ │ │ ├── minimumPathSum.java │ │ │ │ └── minimumPathSumTest.java │ │ │ ├── triangle/ │ │ │ │ ├── triangle.java │ │ │ │ └── triangleTest.java │ │ │ └── uniquePaths/ │ │ │ ├── uniquePaths.java │ │ │ ├── uniquePathsII.java │ │ │ ├── uniquePathsIITest.java │ │ │ └── uniquePathsTest.java │ │ ├── findMinimumInRotatedSortedArray/ │ │ │ ├── findMinimumInRotatedSortedArray.java │ │ │ └── findMinimumInRotatedSortedArrayTest.java │ │ ├── findPeakElement/ │ │ │ ├── findPeakElement.java │ │ │ └── findPeakElementTest.java │ │ ├── firstBadVersion/ │ │ │ ├── VersionControl.java │ │ │ ├── firstBadVersion.java │ │ │ └── firstBadVersionTest.java │ │ ├── inorderSuccessorInBST/ │ │ │ ├── TreeNode.java │ │ │ ├── inorderSuccessorInBST.java │ │ │ └── inorderSuccessorInBSTTest.java │ │ ├── lengthOfLastWord/ │ │ │ ├── LengthOfLastWord.java │ │ │ └── TestLengthOfLastWord.java │ │ ├── lowestCommonAncestorOfABinaryTree/ │ │ │ ├── TreeNode.java │ │ │ ├── lowestCommonAncestorOfABinaryTree.java │ │ │ └── lowestCommonAncestorOfABinaryTreeTest.java │ │ ├── lruCache/ │ │ │ ├── LRUCache.java │ │ │ └── LRUCacheTest.java │ │ ├── maximumDepthOfBinaryTree/ │ │ │ ├── TreeNode.java │ │ │ ├── maximumDepthOfBinaryTree.java │ │ │ └── maximumDepthOfBinaryTreeTest.java │ │ ├── minStack/ │ │ │ ├── MinStack.java │ │ │ └── TestMinStack.java │ │ ├── myQueue/ │ │ │ ├── MyQueue.java │ │ │ └── TestMyQueue.java │ │ ├── myStack/ │ │ │ ├── MyStack.java │ │ │ └── TestMyStack.java │ │ ├── palindromeNumber/ │ │ │ ├── PalindromeNumber.java │ │ │ └── TestPalindromeNumber.java │ │ ├── powXn/ │ │ │ ├── PowXn.java │ │ │ └── TestPowXn.java │ │ ├── removeDuplicatesFromSortedArray/ │ │ │ ├── RemoveDuplicatesFromSortedArray.java │ │ │ └── TestRemoveDuplicates.java │ │ ├── reverseLinkedList/ │ │ │ ├── ListNode.java │ │ │ ├── ReverseLinkedList.java │ │ │ └── TestReverseLinkedList.java │ │ ├── reverseLinkedListII/ │ │ │ ├── ListNode.java │ │ │ ├── ReverseLinkedListII.java │ │ │ └── TestReverseLinkedListII.java │ │ ├── reverseWordsInAString/ │ │ │ ├── ReverseWordsInAString.java │ │ │ └── TestReverseWordsInAString.java │ │ ├── rotateArray/ │ │ │ ├── RotateArray.java │ │ │ └── TestRotateArray.java │ │ ├── search2DMatrix/ │ │ │ ├── search2DMatrix.java │ │ │ └── search2DMatrixTest.java │ │ ├── searchA2DMatrixII/ │ │ │ ├── SearchA2DMatrixII.java │ │ │ └── Test_240.java │ │ ├── searchForRange/ │ │ │ ├── searchForRange.java │ │ │ └── searchForRangeTest.java │ │ ├── searchInABigSortedArray/ │ │ │ ├── searchInABigSortedArray.java │ │ │ └── searchInABigSortedArrayTest.java │ │ ├── searchInRotatedSortedArray/ │ │ │ ├── searchInRotatedSortedArray.java │ │ │ └── searchInRotatedSortedArrayTest.java │ │ ├── searchInsertPosition/ │ │ │ ├── searchInsertPosition.java │ │ │ └── searchInsertPositionTest.java │ │ ├── searchRangeInBinarySearchTree/ │ │ │ ├── TreeNode.java │ │ │ ├── searchRangeInBinarySearchTree.java │ │ │ └── searchRangeInBinarySearchTreeTest.java │ │ ├── strStr/ │ │ │ ├── StrStrKmp.java │ │ │ ├── TestStrStrKmp.java │ │ │ ├── strStr.java │ │ │ └── strStrTest.java │ │ ├── subsets/ │ │ │ ├── subsets.java │ │ │ ├── subsetsII.java │ │ │ ├── subsetsIITest.java │ │ │ └── subsetsTest.java │ │ ├── validAnagram/ │ │ │ ├── TestValidAnagram.java │ │ │ └── ValidAnagram.java │ │ ├── validPalindrome/ │ │ │ ├── TestValidPalindrome.java │ │ │ └── ValidPalindrome.java │ │ └── validateBinarySearchTree/ │ │ ├── TreeNode.java │ │ ├── validateBinarySearchTree.java │ │ └── validateBinarySearchTreeTest.java │ └── python/ │ ├── 1-bitAnd2-bitCharacters/ │ │ └── isOneBitCharacter.py │ ├── AddOneRowToTree/ │ │ └── addOneRow.py │ ├── BinarySearchTreeIterator/ │ │ └── BSTIterator.py │ ├── BinaryTreePostorderTraversal/ │ │ └── postorderTraversal.py │ ├── BinaryTreeTilt/ │ │ └── findTilt.py │ ├── BinaryTreeZigzagLevelOrderTraversal/ │ │ └── zigzagLevelOrder.py │ ├── CheckCompletenessOfABinaryTree/ │ │ └── isCompleteTree.py │ ├── ConstructBinaryTreeFromInorderAndPostorderTraversal/ │ │ └── buildTree.py │ ├── ConstructBinaryTreeFromPreorderAndInorderTraversal/ │ │ └── buildTree.py │ ├── ContainsDuplicateII/ │ │ └── containsNearbyDuplicate.py │ ├── ContainsDuplicateIII/ │ │ └── containsNearbyAlmostDuplicate.py │ ├── ConvertBSTtoGreaterTree/ │ │ └── convertBST.py │ ├── CopyListWithRandomPointer/ │ │ └── copyRandomList.py │ ├── CountCompleteTreeNodes/ │ │ └── countNodes.py │ ├── DeleteNodeInABST/ │ │ └── deleteNode.py │ ├── DiameterOfBinaryTree/ │ │ └── diameterOfBinaryTree.py │ ├── DifferentWaysToAddParentheses/ │ │ └── diffWaysToCompute.py │ ├── FibonacciNumber/ │ │ └── fib.py │ ├── FindDuplicateSubtrees/ │ │ └── findDuplicateSubtrees.py │ ├── FindTheDuplicateNumber/ │ │ └── findDuplicate.py │ ├── FlattenBinaryTreeToLinkedList/ │ │ └── flatten.py │ ├── FlipBinaryTreeToMatchPreorderTraversal/ │ │ └── flipMatchVoyage.py │ ├── FlipEquivalentBinaryTrees/ │ │ └── flipEquiv.py │ ├── HappyNumber/ │ │ └── isHappy.py │ ├── HouseRobber/ │ │ └── rob.py │ ├── HouseRobberIII/ │ │ └── rob.py │ ├── ImageSmoother/ │ │ └── imageSmoother.py │ ├── InsertionSortList/ │ │ └── insertionSortList.py │ ├── K-diffPairsInAnArray/ │ │ └── findPairs.py │ ├── KthSmallestElementInABST/ │ │ └── kthSmallest.py │ ├── LargestNumberAtLeastTwiceOfOthers/ │ │ └── dominantIndex.py │ ├── LargestPerimeterTriangle/ │ │ └── largestPerimeter.py │ ├── LinkedListCycleII/ │ │ └── detectCycle.py │ ├── LongestConsecutiveSequence/ │ │ └── LongestConsecutive.py │ ├── LongestContinuousIncreasingSubsequence/ │ │ └── findLengthOfLCIS.py │ ├── LongestTurbulentSubarray/ │ │ └── maxTurbulenceSize.py │ ├── LongestUnivaluePath/ │ │ └── longestUnivaluePath.py │ ├── LowestCommonAncestorOfABinarySearchTree/ │ │ └── lowestCommonAncestor.py │ ├── LowestCommonAncestorOfABinaryTree/ │ │ └── lowestCommonAncestor.py │ ├── MaximizeDistanceToClosestPerson/ │ │ └── maxDistToClosest.py │ ├── MaximumAverageSubarrayI/ │ │ └── findMaxAverage.py │ ├── MaximumProductOfThreeNumbers/ │ │ └── maximumProduct.py │ ├── MaximumWidthOfBinaryTree/ │ │ └── widthOfBinaryTree.py │ ├── MiddleOfTheLinkedList/ │ │ └── middleOfTheLinkedList.py │ ├── MinCostClimbingStairs/ │ │ └── minCostClimbingStairs.py │ ├── Non-decreasingArray/ │ │ └── checkPossibility.py │ ├── NumberOfIslands/ │ │ └── numIslands.py │ ├── PancakeSorting/ │ │ └── pancakeSort.py │ ├── PartitionList/ │ │ └── partition.py │ ├── PathSumII/ │ │ └── pathSum.py │ ├── PathSumIII/ │ │ └── pathSum.py │ ├── PopulatingNextRightPointersInEachNode/ │ │ └── connect.py │ ├── PopulatingNextRightPointersInEachNodeII/ │ │ └── connect.py │ ├── PositionsOfLargeGroups/ │ │ └── largeGroupPositions.py │ ├── PrintBinaryTree/ │ │ └── printTree.py │ ├── RedundantConnection/ │ │ └── findRedundantConnection.py │ ├── RemoveDuplicatesFromSortedListII/ │ │ └── deleteDuplicates.py │ ├── RemoveNthNodeFromEndOfList/ │ │ └── removeNthFromEnd.py │ ├── ReorderList/ │ │ └── reorderList.py │ ├── RevealCardsInIncreasingOrder/ │ │ └── deckRevealedIncreasing.py │ ├── ReverseLinkedListII/ │ │ └── reverseBetween.py │ ├── SearchA2DMatrixII/ │ │ └── searchMatrix.py │ ├── SecondMinimumNodeInABinaryTree/ │ │ └── findSecondMinimumValue.py │ ├── SerializeAndDeserializeBST/ │ │ └── serialize.py │ ├── ShortestUnsortedContinuousSubarray/ │ │ └── findUnsortedSubarray.py │ ├── SingleNumberII/ │ │ └── SingleNumberII.py │ ├── SortList/ │ │ └── sortList.py │ ├── SquaresOfSortedArray/ │ │ └── sortedSquares.py │ ├── Subsets/ │ │ └── subsets.py │ ├── SubtreeOfAnotherTree/ │ │ └── isSubtree.py │ ├── SumOfLeftLeaves/ │ │ └── sumOfLeftLeaves.py │ ├── SumRootToLeafNumbers/ │ │ └── sumNumbers.py │ ├── SwimInRisingWater/ │ │ └── swim_in_rising_water.py │ ├── ThirdMaximumNumber/ │ │ └── thirdMax.py │ ├── UniqueBinarySearchTrees/ │ │ └── numTrees.py │ ├── UniqueBinarySearchTreesII/ │ │ └── generateTrees.py │ ├── ValidMountainArray/ │ │ └── validMountainArray.py │ ├── ValidateBinarySearchTree/ │ │ └── isValidBST.py │ ├── XOfAKindInADeckOfCards/ │ │ └── hasGroupsSizeX.py │ ├── firstMissingPositive/ │ │ └── firstMissingPositive.py │ ├── jumpGame/ │ │ └── jumpGame.py │ └── uniquePaths/ │ └── uniquePathsIII.py ├── database/ │ ├── README.md │ └── TripsAndUsers.sql ├── scripts/ │ ├── README.md │ ├── comments.sh │ ├── git.config.sh │ ├── lib/ │ │ └── query_problem.sh │ ├── readme.sh │ └── workflow.sh └── shell/ ├── README.md ├── TenthLine.sh ├── TransposeFile.sh ├── ValidPhoneNumbers.sh └── WordFrequency.sh