@@ -82,20 +82,193 @@ You can also refer to my [Java Notes](http://blog.rampatra.com/category/java) fo
82
82
- [ TwoStacksInOneArray] ( /src/main/java/com/rampatra/arrays/TwoStacksInOneArray.java )
83
83
- [ UnsortedSubArray] ( /src/main/java/com/rampatra/arrays/UnsortedSubArray.java )
84
84
2 . [ Backtracking] ( /src/main/java/com/rampatra/backtracking )
85
+ - [ KnightTour] ( /src/main/java/com/rampatra/backtracking/KnightTour.java )
86
+ - [ RatInAMaze] ( /src/main/java/com/rampatra/backtracking/RatInAMaze.java )
85
87
3 . [ Bits] ( /src/main/java/com/rampatra/bits )
88
+ - [ AbsWithoutBranching] ( /src/main/java/com/rampatra/bits/AbsWithoutBranching.java )
89
+ - [ Addition] ( /src/main/java/com/rampatra/bits/Addition.java )
90
+ - [ BinaryGap] ( /src/main/java/com/rampatra/bits/BinaryGap.java )
91
+ - [ BinaryString] ( /src/main/java/com/rampatra/bits/BinaryString.java )
92
+ - [ BooleanArrayPuzzle] ( /src/main/java/com/rampatra/bits/BooleanArrayPuzzle.java )
93
+ - [ ConvertAToB] ( /src/main/java/com/rampatra/bits/ConvertAToB.java )
94
+ - [ CountSetBits] ( /src/main/java/com/rampatra/bits/CountSetBits.java )
95
+ - [ CountSetBitsFromMinusNtoN] ( /src/main/java/com/rampatra/bits/CountSetBitsFromMinusNtoN.java )
96
+ - [ ElementOccurringOnce] ( /src/main/java/com/rampatra/bits/ElementOccurringOnce.java )
97
+ - [ FlippingBits] ( /src/main/java/com/rampatra/bits/FlippingBits.java )
98
+ - [ IntegerOverflow] ( /src/main/java/com/rampatra/bits/IntegerOverflow.java )
99
+ - [ LittleAndBigEndian] ( /src/main/java/com/rampatra/bits/LittleAndBigEndian.java )
100
+ - [ MaxWithoutBranching] ( /src/main/java/com/rampatra/bits/MaxWithoutBranching.java )
101
+ - [ Modulo] ( /src/main/java/com/rampatra/bits/Modulo.java )
102
+ - [ MultipleOf3] ( /src/main/java/com/rampatra/bits/MultipleOf3.java )
103
+ - [ Multiply] ( /src/main/java/com/rampatra/bits/Multiply.java )
104
+ - [ NextHigherNumber] ( /src/main/java/com/rampatra/bits/NextHigherNumber.java )
105
+ - [ NextPowerOf2] ( /src/main/java/com/rampatra/bits/NextPowerOf2.java )
106
+ - [ OppositeSign] ( /src/main/java/com/rampatra/bits/OppositeSign.java )
107
+ - [ Parity] ( /src/main/java/com/rampatra/bits/Parity.java )
108
+ - [ PowerOf2] ( /src/main/java/com/rampatra/bits/PowerOf2.java )
109
+ - [ PowerOf4] ( /src/main/java/com/rampatra/bits/PowerOf4.java )
110
+ - [ README.md] ( /src/main/java/com/rampatra/bits/README.md )
111
+ - [ ReverseBits] ( /src/main/java/com/rampatra/bits/ReverseBits.java )
112
+ - [ RightShiftOperator] ( /src/main/java/com/rampatra/bits/RightShiftOperator.java )
113
+ - [ RightmostSetBit] ( /src/main/java/com/rampatra/bits/RightmostSetBit.java )
114
+ - [ RotateBits] ( /src/main/java/com/rampatra/bits/RotateBits.java )
115
+ - [ ShiftByNegativeNumber] ( /src/main/java/com/rampatra/bits/ShiftByNegativeNumber.java )
116
+ - [ SmallestOf3Integers] ( /src/main/java/com/rampatra/bits/SmallestOf3Integers.java )
117
+ - [ StrCmp] ( /src/main/java/com/rampatra/bits/StrCmp.java )
118
+ - [ SubBit] ( /src/main/java/com/rampatra/bits/SubBit.java )
119
+ - [ SwapBits] ( /src/main/java/com/rampatra/bits/SwapBits.java )
120
+ - [ TwoNonRepeatingElements] ( /src/main/java/com/rampatra/bits/TwoNonRepeatingElements.java )
86
121
4 . [ Blockchain Demo] ( /src/main/java/com/rampatra/blockchain )
122
+ - [ Block] ( /src/main/java/com/rampatra/blockchain/Block.java )
123
+ - [ Blockchain] ( /src/main/java/com/rampatra/blockchain/Blockchain.java )
124
+ - [ Message] ( /src/main/java/com/rampatra/blockchain/Message.java )
125
+ - [ MessageHandler] ( /src/main/java/com/rampatra/blockchain/MessageHandler.java )
126
+ - [ P2P] ( /src/main/java/com/rampatra/blockchain/P2P.java )
127
+ - [ Peer] ( /src/main/java/com/rampatra/blockchain/Peer.java )
87
128
5 . [ Dynamic Programming] ( /src/main/java/com/rampatra/dynamicprogramming )
129
+ - [ FibonacciNumbers] ( /src/main/java/com/rampatra/dynamicprogramming/FibonacciNumbers.java )
130
+ - [ LongestIncreasingSubSequence] ( /src/main/java/com/rampatra/dynamicprogramming/LongestIncreasingSubSequence.java )
131
+ - [ MaximumRectangleOf1sInMatrix] ( /src/main/java/com/rampatra/dynamicprogramming/MaximumRectangleOf1sInMatrix.java )
132
+ - [ MinimumJumpsToReachEnd] ( /src/main/java/com/rampatra/dynamicprogramming/MinimumJumpsToReachEnd.java )
88
133
6 . [ Graphs] ( /src/main/java/com/rampatra/graphs )
89
- 7 . [ Java 8] ( /src/main/java/com/rampatra/java8 )
134
+ 7 . [ Java 8] ( /src/main/java/com/rampatra/java8 )
135
+ - [ DateTime] ( /src/main/java/com/rampatra/java8/DateTime.java )
136
+ - [ FlatMapInStreams] ( /src/main/java/com/rampatra/java8/FlatMapInStreams.java )
137
+ - [ Lambdas] ( /src/main/java/com/rampatra/java8/Lambdas.java )
138
+ - [ Streams] ( /src/main/java/com/rampatra/java8/Streams.java )
90
139
8 . [ Linked Lists] ( /src/main/java/com/rampatra/linkedlists )
140
+ - [ AddNumbersInTwoLists] ( /src/main/java/com/rampatra/linkedlists/AddNumbersInTwoLists.java )
141
+ - [ CloneWithRandPointers] ( /src/main/java/com/rampatra/linkedlists/CloneWithRandPointers.java )
142
+ - [ DeleteAlternateNodes] ( /src/main/java/com/rampatra/linkedlists/DeleteAlternateNodes.java )
143
+ - [ DeleteLesserNodes] ( /src/main/java/com/rampatra/linkedlists/DeleteLesserNodes.java )
144
+ - [ DeleteMnodesAfterNnodes] ( /src/main/java/com/rampatra/linkedlists/DeleteMnodesAfterNnodes.java )
145
+ - [ DeleteNode] ( /src/main/java/com/rampatra/linkedlists/DeleteNode.java )
146
+ - [ DetectAndRemoveLoop] ( /src/main/java/com/rampatra/linkedlists/DetectAndRemoveLoop.java )
147
+ - [ DetectLoop] ( /src/main/java/com/rampatra/linkedlists/DetectLoop.java )
148
+ - [ DivideCircularListIntoTwo] ( /src/main/java/com/rampatra/linkedlists/DivideCircularListIntoTwo.java )
149
+ - [ FlattenMultiLevelLinkedList] ( /src/main/java/com/rampatra/linkedlists/FlattenMultiLevelLinkedList.java )
150
+ - [ Identical] ( /src/main/java/com/rampatra/linkedlists/Identical.java )
151
+ - [ InsertInSortedCircularLinkedList] ( /src/main/java/com/rampatra/linkedlists/InsertInSortedCircularLinkedList.java )
152
+ - [ InsertInSortedList] ( /src/main/java/com/rampatra/linkedlists/InsertInSortedList.java )
153
+ - [ IntersectionAndUnionOf2Lists] ( /src/main/java/com/rampatra/linkedlists/IntersectionAndUnionOf2Lists.java )
154
+ - [ IntersectionOf2SortedLists] ( /src/main/java/com/rampatra/linkedlists/IntersectionOf2SortedLists.java )
155
+ - [ IntersectionPointOfTwoLists] ( /src/main/java/com/rampatra/linkedlists/IntersectionPointOfTwoLists.java )
156
+ - [ LRUCache] ( /src/main/java/com/rampatra/linkedlists/LRUCache.java )
157
+ - [ MaximumSumLinkedList] ( /src/main/java/com/rampatra/linkedlists/MaximumSumLinkedList.java )
158
+ - [ MergeSort] ( /src/main/java/com/rampatra/linkedlists/MergeSort.java )
159
+ - [ MergeSortDoubleLinkedList] ( /src/main/java/com/rampatra/linkedlists/MergeSortDoubleLinkedList.java )
160
+ - [ MergeTwoLinkedListAlternatively] ( /src/main/java/com/rampatra/linkedlists/MergeTwoLinkedListAlternatively.java )
161
+ - [ MergeTwoSortedLists] ( /src/main/java/com/rampatra/linkedlists/MergeTwoSortedLists.java )
162
+ - [ MiddleNode] ( /src/main/java/com/rampatra/linkedlists/MiddleNode.java )
163
+ - [ MoveLastNodeToFirst] ( /src/main/java/com/rampatra/linkedlists/MoveLastNodeToFirst.java )
164
+ - [ NthNodeFromLast] ( /src/main/java/com/rampatra/linkedlists/NthNodeFromLast.java )
165
+ - [ PairWiseSwap] ( /src/main/java/com/rampatra/linkedlists/PairWiseSwap.java )
166
+ - [ Palindrome] ( /src/main/java/com/rampatra/linkedlists/Palindrome.java )
167
+ - [ QuickSort] ( /src/main/java/com/rampatra/linkedlists/QuickSort.java )
168
+ - [ RandomNode] ( /src/main/java/com/rampatra/linkedlists/RandomNode.java )
169
+ - [ RemoveDuplicates] ( /src/main/java/com/rampatra/linkedlists/RemoveDuplicates.java )
170
+ - [ RemoveMiddlePointsFromLineSegments] ( /src/main/java/com/rampatra/linkedlists/RemoveMiddlePointsFromLineSegments.java )
171
+ - [ ReverseAlternateNodesAndAppendAtEnd] ( /src/main/java/com/rampatra/linkedlists/ReverseAlternateNodesAndAppendAtEnd.java )
172
+ - [ ReverseDoubleLinkedList] ( /src/main/java/com/rampatra/linkedlists/ReverseDoubleLinkedList.java )
173
+ - [ ReverseLinkedListInAlternateGroups] ( /src/main/java/com/rampatra/linkedlists/ReverseLinkedListInAlternateGroups.java )
174
+ - [ ReverseLinkedListInGroups] ( /src/main/java/com/rampatra/linkedlists/ReverseLinkedListInGroups.java )
175
+ - [ ReverseSingleLinkedList] ( /src/main/java/com/rampatra/linkedlists/ReverseSingleLinkedList.java )
176
+ - [ RotateLinkedList] ( /src/main/java/com/rampatra/linkedlists/RotateLinkedList.java )
177
+ - [ SegregateEvenOddNumbers] ( /src/main/java/com/rampatra/linkedlists/SegregateEvenOddNumbers.java )
178
+ - [ SortAlternativelySortedLinkedList] ( /src/main/java/com/rampatra/linkedlists/SortAlternativelySortedLinkedList.java )
179
+ - [ SortLinkedListOf0s1s2s] ( /src/main/java/com/rampatra/linkedlists/SortLinkedListOf0s1s2s.java )
180
+ - [ SortedDLLToBBST] ( /src/main/java/com/rampatra/linkedlists/SortedDLLToBBST.java )
181
+ - [ StackWithOperationOnMiddleElement] ( /src/main/java/com/rampatra/linkedlists/StackWithOperationOnMiddleElement.java )
182
+ - [ SwapKthNode] ( /src/main/java/com/rampatra/linkedlists/SwapKthNode.java )
183
+ - [ SwapNodes] ( /src/main/java/com/rampatra/linkedlists/SwapNodes.java )
184
+ - [ TripletFromThreeLinkedLists] ( /src/main/java/com/rampatra/linkedlists/TripletFromThreeLinkedLists.java )
91
185
9 . [ Miscellaneous] ( /src/main/java/com/rampatra/misc )
186
+ - [ BotTesting] ( /src/main/java/com/rampatra/misc/BotTesting.java )
187
+ - [ BreakParagraph] ( /src/main/java/com/rampatra/misc/BreakParagraph.java )
188
+ - [ CollectionIteration] ( /src/main/java/com/rampatra/misc/CollectionIteration.java )
189
+ - [ DivideByZero] ( /src/main/java/com/rampatra/misc/DivideByZero.java )
190
+ - [ Equals] ( /src/main/java/com/rampatra/misc/Equals.java )
191
+ - [ GarbageCollection] ( /src/main/java/com/rampatra/misc/GarbageCollection.java )
192
+ - [ GenericNonGenericMix] ( /src/main/java/com/rampatra/misc/GenericNonGenericMix.java )
193
+ - [ HitCount] ( /src/main/java/com/rampatra/misc/HitCount.java )
194
+ - [ MapReduce] ( /src/main/java/com/rampatra/misc/MapReduce.java )
195
+ - [ MapWithTimestamp] ( /src/main/java/com/rampatra/misc/MapWithTimestamp.java )
196
+ - [ MethodLocalVSInner] ( /src/main/java/com/rampatra/misc/MethodLocalVSInner.java )
197
+ - [ MethodOverloading] ( /src/main/java/com/rampatra/misc/MethodOverloading.java )
198
+ - [ Outer] ( /src/main/java/com/rampatra/misc/Outer.java )
199
+ - [ OuterClassAccess] ( /src/main/java/com/rampatra/misc/OuterClassAccess.java )
200
+ - [ RandomTest] ( /src/main/java/com/rampatra/misc/RandomTest.java )
201
+ - [ ReadFile] ( /src/main/java/com/rampatra/misc/ReadFile.java )
202
+ - [ RecursiveWarmup] ( /src/main/java/com/rampatra/misc/RecursiveWarmup.java )
203
+ - [ RegexReplaceAllSpaces] ( /src/main/java/com/rampatra/misc/RegexReplaceAllSpaces.java )
204
+ - [ RegexValidateLatLong] ( /src/main/java/com/rampatra/misc/RegexValidateLatLong.java )
205
+ - [ ReverseAndAdd] ( /src/main/java/com/rampatra/misc/ReverseAndAdd.java )
206
+ - [ TreeList] ( /src/main/java/com/rampatra/misc/TreeList.java )
207
+ - [ parenthesis] ( /src/main/java/com/rampatra/misc/parenthesis.txt )
208
+ - [ reverseandadd] ( /src/main/java/com/rampatra/misc/reverseandadd.txt )
92
209
10 . [ Permutations] ( /src/main/java/com/rampatra/permutations )
210
+ - [ StringPermutations] ( /src/main/java/com/rampatra/permutations/StringPermutations.java )
211
+ - [ StringPermutationsCount] ( /src/main/java/com/rampatra/permutations/StringPermutationsCount.java )
212
+ - [ StringPermutationsWithDuplicates] ( /src/main/java/com/rampatra/permutations/StringPermutationsWithDuplicates.java )
213
+ - [ UppercaseLowercasePermutations] ( /src/main/java/com/rampatra/permutations/UppercaseLowercasePermutations.java )
93
214
11 . [ Searching] ( /src/main/java/com/rampatra/searching )
215
+ - [ BinarySearch] ( /src/main/java/com/rampatra/searching/BinarySearch.java )
216
+ - [ InterpolationSearch] ( /src/main/java/com/rampatra/searching/InterpolationSearch.java )
94
217
12 . [ Sorting] ( /src/main/java/com/rampatra/sorting )
218
+ - [ BubbleSort] ( /src/main/java/com/rampatra/sorting/BubbleSort.java )
219
+ - [ CheckSorted] ( /src/main/java/com/rampatra/sorting/CheckSorted.java )
220
+ - [ HeapSort] ( /src/main/java/com/rampatra/sorting/HeapSort.java )
221
+ - [ MergeSort] ( /src/main/java/com/rampatra/sorting/MergeSort.java )
222
+ - [ MergeSortSpaceOptimized] ( /src/main/java/com/rampatra/sorting/MergeSortSpaceOptimized.java )
223
+ - [ PancakeSort] ( /src/main/java/com/rampatra/sorting/PancakeSort.java )
224
+ - [ QuickSort] ( /src/main/java/com/rampatra/sorting/QuickSort.java )
225
+ - [ SelectionSort] ( /src/main/java/com/rampatra/sorting/SelectionSort.java )
226
+ - [ WiggleSort] ( /src/main/java/com/rampatra/sorting/WiggleSort.java )
95
227
13 . [ Stacks] ( /src/main/java/com/rampatra/stacks )
228
+ - [ BalancingParenthesis] ( /src/main/java/com/rampatra/stacks/BalancingParenthesis.java )
229
+ - [ MaxRectangleAreaInHistogram] ( /src/main/java/com/rampatra/stacks/MaxRectangleAreaInHistogram.java )
96
230
14 . [ Strings] ( /src/main/java/com/rampatra/strings )
231
+ - [ AnagramsTogether] ( /src/main/java/com/rampatra/strings/AnagramsTogether.java )
232
+ - [ AnagramsTogetherLexicographically] ( /src/main/java/com/rampatra/strings/AnagramsTogetherLexicographically.java )
233
+ - [ BasicRegexParser] ( /src/main/java/com/rampatra/strings/BasicRegexParser.java )
234
+ - [ CompressString] ( /src/main/java/com/rampatra/strings/CompressString.java )
235
+ - [ IntegerToString] ( /src/main/java/com/rampatra/strings/IntegerToString.java )
236
+ - [ KeepOnlyKConsecutiveLetters] ( /src/main/java/com/rampatra/strings/KeepOnlyKConsecutiveLetters.java )
237
+ - [ NearPalindrome] ( /src/main/java/com/rampatra/strings/NearPalindrome.java )
238
+ - [ RemoveDuplicatesAndArrangeLetters] ( /src/main/java/com/rampatra/strings/RemoveDuplicatesAndArrangeLetters.java )
239
+ - [ RemoveExtraSpaces] ( /src/main/java/com/rampatra/strings/RemoveExtraSpaces.java )
240
+ - [ StringRotation] ( /src/main/java/com/rampatra/strings/StringRotation.java )
241
+ - [ StringToInteger] ( /src/main/java/com/rampatra/strings/StringToInteger.java )
242
+ - [ SubStringCheck] ( /src/main/java/com/rampatra/strings/SubStringCheck.java )
243
+ - [ SubStrings] ( /src/main/java/com/rampatra/strings/SubStrings.java )
244
+ - [ WithoutString] ( /src/main/java/com/rampatra/strings/WithoutString.java )
97
245
15 . [ Threads] ( /src/main/java/com/rampatra/threads )
246
+ - [ Basics] ( /src/main/java/com/rampatra/threads/Basics.java )
247
+ - [ NamePrint] ( /src/main/java/com/rampatra/threads/NamePrint.java )
248
+ - [ ProducerConsumerUsingLockApi] ( /src/main/java/com/rampatra/threads/ProducerConsumerUsingLockApi.java )
249
+ - [ ProducerConsumerUsingWaitNotify] ( /src/main/java/com/rampatra/threads/ProducerConsumerUsingWaitNotify.java )
250
+ - [ SimpleDeadlock] ( /src/main/java/com/rampatra/threads/SimpleDeadlock.java )
98
251
16 . [ Trees] ( /src/main/java/com/rampatra/trees )
252
+ - [ BFSUsingQueue] ( /src/main/java/com/rampatra/trees/BFSUsingQueue.java )
253
+ - [ CheckForBST] ( /src/main/java/com/rampatra/trees/CheckForBST.java )
254
+ - [ ChildrenSum] ( /src/main/java/com/rampatra/trees/ChildrenSum.java )
255
+ - [ ConnectNodesAtSameLevel] ( /src/main/java/com/rampatra/trees/ConnectNodesAtSameLevel.java )
256
+ - [ ConstructTreeFromInOrderAndPreOrder] ( /src/main/java/com/rampatra/trees/ConstructTreeFromInOrderAndPreOrder.java )
257
+ - [ DoubleTree] ( /src/main/java/com/rampatra/trees/DoubleTree.java )
258
+ - [ HeightBalanced] ( /src/main/java/com/rampatra/trees/HeightBalanced.java )
259
+ - [ IdenticalTrees] ( /src/main/java/com/rampatra/trees/IdenticalTrees.java )
260
+ - [ InOrderUsingStack] ( /src/main/java/com/rampatra/trees/InOrderUsingStack.java )
261
+ - [ InOrderWithoutStackAndRecursion] ( /src/main/java/com/rampatra/trees/InOrderWithoutStackAndRecursion.java )
262
+ - [ LeafNodes] ( /src/main/java/com/rampatra/trees/LeafNodes.java )
263
+ - [ LeastCommonAncestorInBST] ( /src/main/java/com/rampatra/trees/LeastCommonAncestorInBST.java )
264
+ - [ LeastCommonAncestorInBT] ( /src/main/java/com/rampatra/trees/LeastCommonAncestorInBT.java )
265
+ - [ MirrorTree] ( /src/main/java/com/rampatra/trees/MirrorTree.java )
266
+ - [ RandomNodeInBT] ( /src/main/java/com/rampatra/trees/RandomNodeInBT.java )
267
+ - [ RootToLeafPaths] ( /src/main/java/com/rampatra/trees/RootToLeafPaths.java )
268
+ - [ SecondSmallestInBST] ( /src/main/java/com/rampatra/trees/SecondSmallestInBST.java )
269
+ - [ SpiralTraversal] ( /src/main/java/com/rampatra/trees/SpiralTraversal.java )
270
+ - [ TreeToList] ( /src/main/java/com/rampatra/trees/TreeToList.java )
271
+ - [ TwoSwappedNodesInBST] ( /src/main/java/com/rampatra/trees/TwoSwappedNodesInBST.java )
99
272
2 . [ Cracking the Coding Interview] ( /src/main/java/com/ctci ) :
100
273
1 . [ Arrays and Strings] ( /src/main/java/com/ctci/arraysandstrings )
101
274
2 . [ Linked Lists] ( /src/main/java/com/ctci/linkedlists )
0 commit comments