Skip to content

nazarmubeen/DataStructure-Algorithms-in-Java

Repository files navigation

Data Structure and Algorithms implementation in Java

This project contains implementation of various problems and algorithms.

Array:-

src/Arrays/ContainerWithMostWater.java src/Arrays/DuplicateInArray.java src/Arrays/FindFirstMissingInteger.java src/Arrays/FirstDuplicate.java src/Arrays/FirstNotRepeatingCharacter.java src/Arrays/IntersectionOfSortedArrays.java src/Arrays/KthSmallesElementInArray.java src/Arrays/LargestNumber.java src/Arrays/LeftRotation.java src/Arrays/MaxDistance.java src/Arrays/MaxSumContArray.java src/Arrays/MaximumUnsortedSubarray.java src/Arrays/MinimizeAbsoluteDifference.java src/Arrays/NextPermutation.java src/Arrays/NumRange.java src/Arrays/PascalTriangle.java src/Arrays/RemoveDuplicatesFromSortedArray.java src/Arrays/RepeatAndMissingNumberArray.java src/Arrays/RotateArray.java src/Arrays/SameNumber.java src/Arrays/SetMatrixZeros.java src/Arrays/Sorting.java src/Arrays/SparseArray.java src/Arrays/SpiralOrder1.java src/Arrays/TwoSum.java

src/interviewbit/AddOneToNumber.java src/interviewbit/AntiDiagonals.java src/interviewbit/DuplicateInArray.java src/interviewbit/Flip.java src/interviewbit/MaxNonNegativeSubArray.java src/interviewbit/MaxSumContiguousSubArray.java src/interviewbit/MaximumAbsoluteDifference.java src/interviewbit/MinStepsInfiniteGrid.java src/interviewbit/NobleInteger.java src/interviewbit/PascalTriangle.java src/interviewbit/RepeatAndMissingArray.java src/interviewbit/SpiralOrderMatrix2.java src/interviewbit/WaveArray.java

LinkedList:-

src/LinkedList/AddTwoNumberInList.java src/LinkedList/CreateList.java src/LinkedList/DNode.java src/LinkedList/DoubleLinkedList.java src/LinkedList/LinkedList.java src/LinkedList/LinkedListOperations.java src/LinkedList/LinkedListUtilities.java src/LinkedList/ListCycle.java src/LinkedList/ListNode.java src/LinkedList/MergeLinkedList.java src/LinkedList/MergeTwoSortedList.java src/LinkedList/Node.java src/LinkedList/PallindromeList.java src/LinkedList/PartitionList.java src/LinkedList/ReOrderList.java src/LinkedList/RemoveDuplicatesFromSortedList.java src/LinkedList/RemoveNthNodeFromListEnd.java src/LinkedList/RotateList.java src/LinkedList/SwapNodesInPair.java

Stack:-

src/stack/EvaluateExpression.java src/stack/MinStack.java src/stack/NearestSmallerElement.java src/stack/PrefixCalculation.java src/stack/ReverseString.java src/stack/SimplifyDirectoryPath.java src/stack/StackOfStrings.java src/stack/StackTest.java src/stack/Subtract.java src/string/StringAnagrams.java

Trie:-

src/Trie/Problem.java src/Trie/Trie.java src/Trie/TrieNode.java

src/Utils/ArrayUtil.java

Backtracking:-

src/backtracking/AllPossibleNQueenSolutions.java src/backtracking/CombinationSum.java src/backtracking/CombinationSum2.java src/backtracking/Combinations.java src/backtracking/FourQueenProblem.java src/backtracking/GenerateAllParenthesis.java src/backtracking/KthPermutationSequence.java src/backtracking/LetterPhone.java src/backtracking/ModularExpression.java src/backtracking/NQueens.java src/backtracking/Permutations.java src/backtracking/SubSet.java src/backtracking/SubSetsw.java src/backtracking/Sudoku.java

Dynamic Programming:-

src/dynamicprogramming/BuySellStocks.java src/dynamicprogramming/BuySellStocks2.java src/dynamicprogramming/EditDistance.java src/dynamicprogramming/IntersectingChordInCircle.java src/dynamicprogramming/JumpGameArray.java src/dynamicprogramming/LongestIncreasingSequence.java src/dynamicprogramming/LongestIncreasingSubSequence.java src/dynamicprogramming/MaxProductSubArray.java src/dynamicprogramming/MaxProductSubArrayOptimal.java src/dynamicprogramming/MaxSumWithoutAdjacentElemnt.java src/dynamicprogramming/MaximumRectangleInBinaryMatrix.java src/dynamicprogramming/MaximumSumPathInBinaryTree.java src/dynamicprogramming/MinJumpsArray.java src/dynamicprogramming/MinSumPathInMatrix.java src/dynamicprogramming/NdigitNumbersWithDigitSumS.java src/dynamicprogramming/SmallestPositiveNumber.java src/dynamicprogramming/Stairs.java src/dynamicprogramming/SubMatriceswithSumZero.java src/dynamicprogramming/SubMatriceswithSumZeroGeneralApproach.java src/dynamicprogramming/WordBreak.java src/dynamicprogramming/WordBreak2.java

Greedy:-

src/greedy/AssignMiceToHoles.java src/greedy/Bulbs.java src/greedy/GasStation.java src/greedy/HighestProduct.java src/greedy/MajorityElement.java src/greedy/Seats.java

Hashing:-

src/hashing/AllUniquePermutations.java src/hashing/Anagrams.java src/hashing/ColorFulNumber.java src/hashing/LongestSubstringWithoutRepeat.java src/hashing/PointsOnAStraightLine.java src/hashing/SubstringConcatenation.java src/hashing/Transaction.java

Heaps:-

src/heaps/BasicHeapStructure.java src/heaps/DistinctNumbersInWindow.java src/heaps/Nmaxpaircombinations.java src/heaps/WaystoformMaxHeap.java

PriorityQueue:-

src/priorityQueues/BinaryHeap.java src/priorityQueues/BinaryHeapClient.java src/priorityQueues/HeapSort.java src/priorityQueues/HeapSortClient.java

Sorting:-

src/sorting/ClientSorting.java src/sorting/InsertionSort.java src/sorting/JavaInBuildSorts.java src/sorting/MergerSort.java src/sorting/Monkgame.java src/sorting/QuickSort.java src/sorting/SelectionSort.java src/sorting/ShellSort.java src/sorting/Sortabs.java src/sorting/Sorting.java src/sorting/TestSorting.java

Trees:-

src/tree/BinarySearchTree.java src/tree/BinaryTreeFunctionalities.java src/tree/LowestCommonAncestor.java src/tree/Node.java src/tree/SwapNodes.java src/tree/TraverseTree.java

src/treeproblems_interviewBit/BalancedBinaryTree.java src/treeproblems_interviewBit/FlattenBinaryTreeToLinkedList.java src/treeproblems_interviewBit/IdenticalBinaryTree.java src/treeproblems_interviewBit/InorderTraversal.java src/treeproblems_interviewBit/Inversion.java src/treeproblems_interviewBit/InvertBinaryTree.java src/treeproblems_interviewBit/KthSmallestElementTree.java src/treeproblems_interviewBit/LeastCommonAncestor.java src/treeproblems_interviewBit/MaxDepthOfBinaryTree.java src/treeproblems_interviewBit/MinDepthOfBinaryTree.java src/treeproblems_interviewBit/OrderOfPeopleHeights.java src/treeproblems_interviewBit/PathSum.java src/treeproblems_interviewBit/PostOrderTraversal.java src/treeproblems_interviewBit/PreOrderInorderToTree.java src/treeproblems_interviewBit/PreOrderTraversal.java src/treeproblems_interviewBit/Prefix.java src/treeproblems_interviewBit/RootToLeafPathWithSum.java src/treeproblems_interviewBit/SortedArrayToBST.java src/treeproblems_interviewBit/SymmetricBinaryTree.java src/treeproblems_interviewBit/TreeNode.java src/treeproblems_interviewBit/ZigZagLevelOrderBT.java

src/trees/ClosestNodeInABinarySearchTree.java src/trees/FlattenTreeToList.java src/trees/InvertBinaryTree.java src/trees/KthSmallestInTree.java src/trees/LargestBSTSubTree.java src/trees/LavelOrderTraversal.java src/trees/LongestConsecutiveSequence.java src/trees/MainClass.java src/trees/Node.java src/trees/RootToLeafPath.java src/trees/SortedArrayToTree.java src/trees/SumTree.java src/trees/Tree.java src/trees/TreeOperations.java src/trees/isBST.java

Graph:- src/Graph/BFSGraph.java src/Graph/DirectedGraph.java src/Graph/DirectedGraphImpl.java src/Graph/DriverClass.java src/Graph/Graph.java src/Graph/GraphBase.java src/Graph/GraphImpl.java src/Graph/GraphSearch.java src/Graph/Islands.java src/Graph/SnakeAndLadder.java src/Graph/Vertex.java

Union_find:-

src/union_find/QuickFind.java src/union_find/QuickFindImplementation.java src/union_find/UnionFind.java src/union_find/UnionFindImplementation.java

Others:-

src/leetcodeproblems/LeetCodeTest.java

src/numbers/Sumwithoutoperator.java

src/primitivetypes/Basics.java src/primitivetypes/BitsBasics.java src/primitivetypes/ComputeParity.java

src/symboltable/BinarySearchClient.java src/symboltable/BinarySerach.java src/symboltable/SymbolTable.java src/symboltable/SymbolTableClient.java src/symboltable/binryserach/BST.java src/symboltable/binryserach/BSTClient.java src/symboltable/binryserach/Node.java

src/systemdesign/storage/DesignCache.java src/systemdesign/storage/LRU.java