├── .gitignore ├── README.md ├── pom.xml └── src ├── main └── java │ ├── arraystring │ ├── _01_01_IsUnique.java │ ├── _01_02_CheckPermutation.java │ ├── _01_03_URLify.java │ ├── _01_04_PalindromePermutation.java │ ├── _01_05_OneAway.java │ ├── _01_06_StringCompression.java │ ├── _01_07_RotateMatrix.java │ ├── _01_08_ZeroMatrix.java │ └── _01_09_StringRotation.java │ ├── bitmanipulation │ ├── _05_01_Insertion.java │ ├── _05_02_BinaryToString.java │ ├── _05_03_FlipBitToWin.java │ ├── _05_04_NextBiggerNumber.java │ ├── _05_04_NextSmallerNumber.java │ ├── _05_05_Debugger.java │ ├── _05_06_Conversion.java │ ├── _05_07_PairwiseSwap.java │ └── _05_08_DrawLine.java │ ├── linkedlist │ ├── LinkedListNode.java │ ├── _02_01_RemoveDups.java │ ├── _02_02_ReturnKthToLast.java │ ├── _02_03_DeleteMiddleNode.java │ ├── _02_04_Partition.java │ ├── _02_05_SumList.java │ ├── _02_05_SumListReverse.java │ ├── _02_06_Palindrome.java │ ├── _02_07_Intersection.java │ └── _02_08_LoopDetection.java │ ├── mathlogic │ └── _06_01_TheHeavyPill.java │ ├── moderate │ ├── _16_01_NumberSwapper.java │ └── _16_06_SmallestDifference.java │ ├── recursivedp │ ├── _08_01_TripleStep.java │ ├── _08_02_RobotInAGrid.java │ ├── _08_03_MagicIndex.java │ ├── _08_04_PowerSet.java │ ├── _08_05_RecursiveMultiply.java │ ├── _08_06_HanoiTowers.java │ ├── _08_07_PermutationWithoutDup.java │ ├── _08_08_PermutationWithDup.java │ ├── _08_09_Parens.java │ ├── _08_10_PaintFill.java │ ├── _08_11_Coins.java │ ├── _08_12_EightQueens.java │ ├── _08_13_StackOfBoxes.java │ └── _08_14_BooleanEvaluation.java │ ├── sortingsearching │ ├── _10_01_SortedMerge.java │ ├── _10_02_GroupAnagrams.java │ ├── _10_03_SearchInRotatedArray.java │ ├── _10_04_SortedSearch.java │ └── _10_05_SparseSearch.java │ ├── stackqueue │ ├── _03_01_ThreeInOne.java │ ├── _03_02_MinStack.java │ ├── _03_03_StackOfPlates.java │ ├── _03_04_QueueViaStacks.java │ ├── _03_05_SortStack.java │ └── _03_06_AnimalShelter.java │ └── treegraph │ ├── BinaryTreeNode.java │ ├── Digraph.java │ ├── ParentAwareBinaryTreeNode.java │ ├── _04_01_RouteBetweenNodes.java │ ├── _04_02_MinimalTree.java │ ├── _04_03_ListOfDepths.java │ ├── _04_04_CheckBalanced.java │ ├── _04_05_ValidateBST.java │ ├── _04_06_Successor.java │ ├── _04_07_BuildOrder.java │ ├── _04_08_FindCommonAncestor.java │ ├── _04_09_BSTSequences.java │ ├── _04_10_CheckSubTree.java │ ├── _04_11_RandomNode.java │ └── _04_12_PathsWithSum.java └── test └── java ├── arraystring ├── _01_01_IsUniqueTest.java ├── _01_02_CheckPermutationTest.java ├── _01_03_URLifyTest.java ├── _01_04_PalindromePermutationTest.java ├── _01_05_OneAwayTest.java ├── _01_06_StringCompressionTest.java ├── _01_07_RotateMatrixTest.java ├── _01_08_ZeroMatrixTest.java └── _01_09_StringRotationTest.java ├── bitmanipulation ├── _05_01_InsertionTest.java ├── _05_02_BinaryToStringTest.java ├── _05_03_FilpBitToWinTest.java ├── _05_04_NextBiggerNumberTest.java ├── _05_04_NextSmallerNumberTest.java ├── _05_05_DebuggerTest.java ├── _05_06_ConversionTest.java ├── _05_07_PairwiseSwapTest.java └── _05_08_DrawLineTest.java ├── linkedlist ├── _02_01_RemoveDupsTest.java ├── _02_02_ReturnKthToLastTest.java ├── _02_03_DeleteMiddleNodeTest.java ├── _02_04_PartitionTest.java ├── _02_05_SumListReverseTest.java ├── _02_05_SumListTest.java ├── _02_06_PalindromeTest.java ├── _02_07_IntersectionTest.java └── _02_08_LoopDetectionTest.java ├── moderate ├── _16_01_NumberSwapperTest.java └── _16_06_SmallestDifferenceTest.java ├── recursivedp ├── _08_01_TripleStepTest.java ├── _08_02_RobotInAGridTest.java ├── _08_03_MagicIndexTest.java ├── _08_04_PowerSetTest.java ├── _08_05_RecursiveMultiplyTest.java ├── _08_06_HanoiTowersTest.java ├── _08_07_PermutationWithoutDupTest.java ├── _08_08_PermutationWithDupTest.java ├── _08_09_ParensTest.java ├── _08_10_PaintFillTest.java ├── _08_11_CoinsTest.java ├── _08_12_EightQueensTest.java ├── _08_13_StackOfBoxesTest.java └── _08_14_BooleanEvaluationTest.java ├── sortingsearching ├── _10_01_SortedMergeTest.java ├── _10_02_GroupAnagramsTest.java ├── _10_03_SearchInRotatedArrayTest.java ├── _10_04_SortedSearchTest.java └── _10_05_SparseSearchTest.java ├── stackqueue ├── _03_01_ThreeInOneTest.java ├── _03_02_MinStackTest.java ├── _03_03_StackOfPlatesTest.java ├── _03_04_QueueViaStacksTest.java ├── _03_05_SortStackTest.java └── _03_06_AnimalShelterTest.java └── treegraph ├── _04_01_RouteBetweenNodesTest.java ├── _04_02_MinimalTreeTest.java ├── _04_03_ListOfDepthsTest.java ├── _04_04_CheckBalancedTest.java ├── _04_05_ValidateBSTTest.java ├── _04_06_SuccessorTest.java ├── _04_07_BuildOrderTest.java ├── _04_08_FindCommonAncestorTest.java ├── _04_09_BSTSequencesTest.java ├── _04_10_CheckSubTreeTest.java ├── _04_11_RandomNodeTest.java └── _04_12_PathsWithSumTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .idea 3 | target 4 | .DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/README.md -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/arraystring/_01_01_IsUnique.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/arraystring/_01_01_IsUnique.java -------------------------------------------------------------------------------- /src/main/java/arraystring/_01_02_CheckPermutation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/arraystring/_01_02_CheckPermutation.java -------------------------------------------------------------------------------- /src/main/java/arraystring/_01_03_URLify.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/arraystring/_01_03_URLify.java -------------------------------------------------------------------------------- /src/main/java/arraystring/_01_04_PalindromePermutation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/arraystring/_01_04_PalindromePermutation.java -------------------------------------------------------------------------------- /src/main/java/arraystring/_01_05_OneAway.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/arraystring/_01_05_OneAway.java -------------------------------------------------------------------------------- /src/main/java/arraystring/_01_06_StringCompression.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/arraystring/_01_06_StringCompression.java -------------------------------------------------------------------------------- /src/main/java/arraystring/_01_07_RotateMatrix.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/arraystring/_01_07_RotateMatrix.java -------------------------------------------------------------------------------- /src/main/java/arraystring/_01_08_ZeroMatrix.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/arraystring/_01_08_ZeroMatrix.java -------------------------------------------------------------------------------- /src/main/java/arraystring/_01_09_StringRotation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/arraystring/_01_09_StringRotation.java -------------------------------------------------------------------------------- /src/main/java/bitmanipulation/_05_01_Insertion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/bitmanipulation/_05_01_Insertion.java -------------------------------------------------------------------------------- /src/main/java/bitmanipulation/_05_02_BinaryToString.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/bitmanipulation/_05_02_BinaryToString.java -------------------------------------------------------------------------------- /src/main/java/bitmanipulation/_05_03_FlipBitToWin.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/bitmanipulation/_05_03_FlipBitToWin.java -------------------------------------------------------------------------------- /src/main/java/bitmanipulation/_05_04_NextBiggerNumber.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/bitmanipulation/_05_04_NextBiggerNumber.java -------------------------------------------------------------------------------- /src/main/java/bitmanipulation/_05_04_NextSmallerNumber.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/bitmanipulation/_05_04_NextSmallerNumber.java -------------------------------------------------------------------------------- /src/main/java/bitmanipulation/_05_05_Debugger.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/bitmanipulation/_05_05_Debugger.java -------------------------------------------------------------------------------- /src/main/java/bitmanipulation/_05_06_Conversion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/bitmanipulation/_05_06_Conversion.java -------------------------------------------------------------------------------- /src/main/java/bitmanipulation/_05_07_PairwiseSwap.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/bitmanipulation/_05_07_PairwiseSwap.java -------------------------------------------------------------------------------- /src/main/java/bitmanipulation/_05_08_DrawLine.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/bitmanipulation/_05_08_DrawLine.java -------------------------------------------------------------------------------- /src/main/java/linkedlist/LinkedListNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/linkedlist/LinkedListNode.java -------------------------------------------------------------------------------- /src/main/java/linkedlist/_02_01_RemoveDups.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/linkedlist/_02_01_RemoveDups.java -------------------------------------------------------------------------------- /src/main/java/linkedlist/_02_02_ReturnKthToLast.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/linkedlist/_02_02_ReturnKthToLast.java -------------------------------------------------------------------------------- /src/main/java/linkedlist/_02_03_DeleteMiddleNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/linkedlist/_02_03_DeleteMiddleNode.java -------------------------------------------------------------------------------- /src/main/java/linkedlist/_02_04_Partition.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/linkedlist/_02_04_Partition.java -------------------------------------------------------------------------------- /src/main/java/linkedlist/_02_05_SumList.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/linkedlist/_02_05_SumList.java -------------------------------------------------------------------------------- /src/main/java/linkedlist/_02_05_SumListReverse.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/linkedlist/_02_05_SumListReverse.java -------------------------------------------------------------------------------- /src/main/java/linkedlist/_02_06_Palindrome.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/linkedlist/_02_06_Palindrome.java -------------------------------------------------------------------------------- /src/main/java/linkedlist/_02_07_Intersection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/linkedlist/_02_07_Intersection.java -------------------------------------------------------------------------------- /src/main/java/linkedlist/_02_08_LoopDetection.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/linkedlist/_02_08_LoopDetection.java -------------------------------------------------------------------------------- /src/main/java/mathlogic/_06_01_TheHeavyPill.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/mathlogic/_06_01_TheHeavyPill.java -------------------------------------------------------------------------------- /src/main/java/moderate/_16_01_NumberSwapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/moderate/_16_01_NumberSwapper.java -------------------------------------------------------------------------------- /src/main/java/moderate/_16_06_SmallestDifference.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/moderate/_16_06_SmallestDifference.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_01_TripleStep.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_01_TripleStep.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_02_RobotInAGrid.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_02_RobotInAGrid.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_03_MagicIndex.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_03_MagicIndex.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_04_PowerSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_04_PowerSet.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_05_RecursiveMultiply.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_05_RecursiveMultiply.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_06_HanoiTowers.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_06_HanoiTowers.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_07_PermutationWithoutDup.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_07_PermutationWithoutDup.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_08_PermutationWithDup.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_08_PermutationWithDup.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_09_Parens.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_09_Parens.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_10_PaintFill.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_10_PaintFill.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_11_Coins.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_11_Coins.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_12_EightQueens.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_12_EightQueens.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_13_StackOfBoxes.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_13_StackOfBoxes.java -------------------------------------------------------------------------------- /src/main/java/recursivedp/_08_14_BooleanEvaluation.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/recursivedp/_08_14_BooleanEvaluation.java -------------------------------------------------------------------------------- /src/main/java/sortingsearching/_10_01_SortedMerge.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/sortingsearching/_10_01_SortedMerge.java -------------------------------------------------------------------------------- /src/main/java/sortingsearching/_10_02_GroupAnagrams.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/sortingsearching/_10_02_GroupAnagrams.java -------------------------------------------------------------------------------- /src/main/java/sortingsearching/_10_03_SearchInRotatedArray.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/sortingsearching/_10_03_SearchInRotatedArray.java -------------------------------------------------------------------------------- /src/main/java/sortingsearching/_10_04_SortedSearch.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/sortingsearching/_10_04_SortedSearch.java -------------------------------------------------------------------------------- /src/main/java/sortingsearching/_10_05_SparseSearch.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/sortingsearching/_10_05_SparseSearch.java -------------------------------------------------------------------------------- /src/main/java/stackqueue/_03_01_ThreeInOne.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/stackqueue/_03_01_ThreeInOne.java -------------------------------------------------------------------------------- /src/main/java/stackqueue/_03_02_MinStack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/stackqueue/_03_02_MinStack.java -------------------------------------------------------------------------------- /src/main/java/stackqueue/_03_03_StackOfPlates.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/stackqueue/_03_03_StackOfPlates.java -------------------------------------------------------------------------------- /src/main/java/stackqueue/_03_04_QueueViaStacks.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/stackqueue/_03_04_QueueViaStacks.java -------------------------------------------------------------------------------- /src/main/java/stackqueue/_03_05_SortStack.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/stackqueue/_03_05_SortStack.java -------------------------------------------------------------------------------- /src/main/java/stackqueue/_03_06_AnimalShelter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/stackqueue/_03_06_AnimalShelter.java -------------------------------------------------------------------------------- /src/main/java/treegraph/BinaryTreeNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/BinaryTreeNode.java -------------------------------------------------------------------------------- /src/main/java/treegraph/Digraph.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/Digraph.java -------------------------------------------------------------------------------- /src/main/java/treegraph/ParentAwareBinaryTreeNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/ParentAwareBinaryTreeNode.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_01_RouteBetweenNodes.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_01_RouteBetweenNodes.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_02_MinimalTree.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_02_MinimalTree.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_03_ListOfDepths.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_03_ListOfDepths.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_04_CheckBalanced.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_04_CheckBalanced.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_05_ValidateBST.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_05_ValidateBST.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_06_Successor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_06_Successor.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_07_BuildOrder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_07_BuildOrder.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_08_FindCommonAncestor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_08_FindCommonAncestor.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_09_BSTSequences.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_09_BSTSequences.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_10_CheckSubTree.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_10_CheckSubTree.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_11_RandomNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_11_RandomNode.java -------------------------------------------------------------------------------- /src/main/java/treegraph/_04_12_PathsWithSum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/main/java/treegraph/_04_12_PathsWithSum.java -------------------------------------------------------------------------------- /src/test/java/arraystring/_01_01_IsUniqueTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/arraystring/_01_01_IsUniqueTest.java -------------------------------------------------------------------------------- /src/test/java/arraystring/_01_02_CheckPermutationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/arraystring/_01_02_CheckPermutationTest.java -------------------------------------------------------------------------------- /src/test/java/arraystring/_01_03_URLifyTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/arraystring/_01_03_URLifyTest.java -------------------------------------------------------------------------------- /src/test/java/arraystring/_01_04_PalindromePermutationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/arraystring/_01_04_PalindromePermutationTest.java -------------------------------------------------------------------------------- /src/test/java/arraystring/_01_05_OneAwayTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/arraystring/_01_05_OneAwayTest.java -------------------------------------------------------------------------------- /src/test/java/arraystring/_01_06_StringCompressionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/arraystring/_01_06_StringCompressionTest.java -------------------------------------------------------------------------------- /src/test/java/arraystring/_01_07_RotateMatrixTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/arraystring/_01_07_RotateMatrixTest.java -------------------------------------------------------------------------------- /src/test/java/arraystring/_01_08_ZeroMatrixTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/arraystring/_01_08_ZeroMatrixTest.java -------------------------------------------------------------------------------- /src/test/java/arraystring/_01_09_StringRotationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/arraystring/_01_09_StringRotationTest.java -------------------------------------------------------------------------------- /src/test/java/bitmanipulation/_05_01_InsertionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/bitmanipulation/_05_01_InsertionTest.java -------------------------------------------------------------------------------- /src/test/java/bitmanipulation/_05_02_BinaryToStringTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/bitmanipulation/_05_02_BinaryToStringTest.java -------------------------------------------------------------------------------- /src/test/java/bitmanipulation/_05_03_FilpBitToWinTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/bitmanipulation/_05_03_FilpBitToWinTest.java -------------------------------------------------------------------------------- /src/test/java/bitmanipulation/_05_04_NextBiggerNumberTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/bitmanipulation/_05_04_NextBiggerNumberTest.java -------------------------------------------------------------------------------- /src/test/java/bitmanipulation/_05_04_NextSmallerNumberTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/bitmanipulation/_05_04_NextSmallerNumberTest.java -------------------------------------------------------------------------------- /src/test/java/bitmanipulation/_05_05_DebuggerTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/bitmanipulation/_05_05_DebuggerTest.java -------------------------------------------------------------------------------- /src/test/java/bitmanipulation/_05_06_ConversionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/bitmanipulation/_05_06_ConversionTest.java -------------------------------------------------------------------------------- /src/test/java/bitmanipulation/_05_07_PairwiseSwapTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/bitmanipulation/_05_07_PairwiseSwapTest.java -------------------------------------------------------------------------------- /src/test/java/bitmanipulation/_05_08_DrawLineTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/bitmanipulation/_05_08_DrawLineTest.java -------------------------------------------------------------------------------- /src/test/java/linkedlist/_02_01_RemoveDupsTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/linkedlist/_02_01_RemoveDupsTest.java -------------------------------------------------------------------------------- /src/test/java/linkedlist/_02_02_ReturnKthToLastTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/linkedlist/_02_02_ReturnKthToLastTest.java -------------------------------------------------------------------------------- /src/test/java/linkedlist/_02_03_DeleteMiddleNodeTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/linkedlist/_02_03_DeleteMiddleNodeTest.java -------------------------------------------------------------------------------- /src/test/java/linkedlist/_02_04_PartitionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/linkedlist/_02_04_PartitionTest.java -------------------------------------------------------------------------------- /src/test/java/linkedlist/_02_05_SumListReverseTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/linkedlist/_02_05_SumListReverseTest.java -------------------------------------------------------------------------------- /src/test/java/linkedlist/_02_05_SumListTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/linkedlist/_02_05_SumListTest.java -------------------------------------------------------------------------------- /src/test/java/linkedlist/_02_06_PalindromeTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/linkedlist/_02_06_PalindromeTest.java -------------------------------------------------------------------------------- /src/test/java/linkedlist/_02_07_IntersectionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/linkedlist/_02_07_IntersectionTest.java -------------------------------------------------------------------------------- /src/test/java/linkedlist/_02_08_LoopDetectionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/linkedlist/_02_08_LoopDetectionTest.java -------------------------------------------------------------------------------- /src/test/java/moderate/_16_01_NumberSwapperTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/moderate/_16_01_NumberSwapperTest.java -------------------------------------------------------------------------------- /src/test/java/moderate/_16_06_SmallestDifferenceTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/moderate/_16_06_SmallestDifferenceTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_01_TripleStepTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_01_TripleStepTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_02_RobotInAGridTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_02_RobotInAGridTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_03_MagicIndexTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_03_MagicIndexTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_04_PowerSetTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_04_PowerSetTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_05_RecursiveMultiplyTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_05_RecursiveMultiplyTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_06_HanoiTowersTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_06_HanoiTowersTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_07_PermutationWithoutDupTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_07_PermutationWithoutDupTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_08_PermutationWithDupTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_08_PermutationWithDupTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_09_ParensTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_09_ParensTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_10_PaintFillTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_10_PaintFillTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_11_CoinsTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_11_CoinsTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_12_EightQueensTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_12_EightQueensTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_13_StackOfBoxesTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_13_StackOfBoxesTest.java -------------------------------------------------------------------------------- /src/test/java/recursivedp/_08_14_BooleanEvaluationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/recursivedp/_08_14_BooleanEvaluationTest.java -------------------------------------------------------------------------------- /src/test/java/sortingsearching/_10_01_SortedMergeTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/sortingsearching/_10_01_SortedMergeTest.java -------------------------------------------------------------------------------- /src/test/java/sortingsearching/_10_02_GroupAnagramsTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/sortingsearching/_10_02_GroupAnagramsTest.java -------------------------------------------------------------------------------- /src/test/java/sortingsearching/_10_03_SearchInRotatedArrayTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/sortingsearching/_10_03_SearchInRotatedArrayTest.java -------------------------------------------------------------------------------- /src/test/java/sortingsearching/_10_04_SortedSearchTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/sortingsearching/_10_04_SortedSearchTest.java -------------------------------------------------------------------------------- /src/test/java/sortingsearching/_10_05_SparseSearchTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/sortingsearching/_10_05_SparseSearchTest.java -------------------------------------------------------------------------------- /src/test/java/stackqueue/_03_01_ThreeInOneTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/stackqueue/_03_01_ThreeInOneTest.java -------------------------------------------------------------------------------- /src/test/java/stackqueue/_03_02_MinStackTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/stackqueue/_03_02_MinStackTest.java -------------------------------------------------------------------------------- /src/test/java/stackqueue/_03_03_StackOfPlatesTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/stackqueue/_03_03_StackOfPlatesTest.java -------------------------------------------------------------------------------- /src/test/java/stackqueue/_03_04_QueueViaStacksTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/stackqueue/_03_04_QueueViaStacksTest.java -------------------------------------------------------------------------------- /src/test/java/stackqueue/_03_05_SortStackTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/stackqueue/_03_05_SortStackTest.java -------------------------------------------------------------------------------- /src/test/java/stackqueue/_03_06_AnimalShelterTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/stackqueue/_03_06_AnimalShelterTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_01_RouteBetweenNodesTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_01_RouteBetweenNodesTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_02_MinimalTreeTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_02_MinimalTreeTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_03_ListOfDepthsTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_03_ListOfDepthsTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_04_CheckBalancedTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_04_CheckBalancedTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_05_ValidateBSTTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_05_ValidateBSTTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_06_SuccessorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_06_SuccessorTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_07_BuildOrderTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_07_BuildOrderTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_08_FindCommonAncestorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_08_FindCommonAncestorTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_09_BSTSequencesTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_09_BSTSequencesTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_10_CheckSubTreeTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_10_CheckSubTreeTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_11_RandomNodeTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_11_RandomNodeTest.java -------------------------------------------------------------------------------- /src/test/java/treegraph/_04_12_PathsWithSumTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huiwang/cracking-the-coding-interview/HEAD/src/test/java/treegraph/_04_12_PathsWithSumTest.java --------------------------------------------------------------------------------