* **Backtracking** * [AllCombinationsOfSizeK](Backtracking/AllCombinationsOfSizeK.js) * [GeneratePermutations](Backtracking/GeneratePermutations.js) * [KnightTour](Backtracking/KnightTour.js) * [NQueens](Backtracking/NQueens.js) * [RatInAMaze](Backtracking/RatInAMaze.js) * [Sudoku](Backtracking/Sudoku.js) * [SumOfSubset](Backtracking/SumOfSubset.js) * **Bit-Manipulation** * [BinaryCountSetBits](Bit-Manipulation/BinaryCountSetBits.js) * [IsPowerOfTwo](Bit-Manipulation/IsPowerOfTwo.js) * [LogTwo](Bit-Manipulation/LogTwo.js) * [NextPowerOfTwo](Bit-Manipulation/NextPowerOfTwo.js) * [SetBit](Bit-Manipulation/SetBit.js) * **Cache** * [LFUCache](Cache/LFUCache.js) * [LRUCache](Cache/LRUCache.js) * [Memoize](Cache/Memoize.js) * **Cellular-Automata** * [ConwaysGameOfLife](Cellular-Automata/ConwaysGameOfLife.js) * **Ciphers** * [AffineCipher](Ciphers/AffineCipher.js) * [Atbash](Ciphers/Atbash.js) * [CaesarCipher](Ciphers/CaesarCipher.js) * [KeyFinder](Ciphers/KeyFinder.js) * [KeywordShiftedAlphabet](Ciphers/KeywordShiftedAlphabet.js) * [ROT13](Ciphers/ROT13.js) * [VigenereCipher](Ciphers/VigenereCipher.js) * [XORCipher](Ciphers/XORCipher.js) * **Conversions** * [ArbitraryBase](Conversions/ArbitraryBase.js) * [ArrayBufferToBase64](Conversions/ArrayBufferToBase64.js) * [Base64ToArrayBuffer](Conversions/Base64ToArrayBuffer.js) * [BinaryToDecimal](Conversions/BinaryToDecimal.js) * [BinaryToHex](Conversions/BinaryToHex.js) * [DateDayDifference](Conversions/DateDayDifference.js) * [DateToDay](Conversions/DateToDay.js) * [DecimalToBinary](Conversions/DecimalToBinary.js) * [DecimalToHex](Conversions/DecimalToHex.js) * [DecimalToOctal](Conversions/DecimalToOctal.js) * [DecimalToRoman](Conversions/DecimalToRoman.js) * [HexToBinary](Conversions/HexToBinary.js) * [HexToDecimal](Conversions/HexToDecimal.js) * [HexToRGB](Conversions/HexToRGB.js) * [LitersToImperialGallons](Conversions/LitersToImperialGallons.js) * [LitersToUSGallons](Conversions/LitersToUSGallons.js) * [LowerCaseConversion](Conversions/LowerCaseConversion.js) * [MeterToFeetConversion](Conversions/MeterToFeetConversion.js) * [OctToDecimal](Conversions/OctToDecimal.js) * [OuncesToKilograms](Conversions/OuncesToKilograms.js) * [RailwayTimeConversion](Conversions/RailwayTimeConversion.js) * [RgbHsvConversion](Conversions/RgbHsvConversion.js) * [RGBToHex](Conversions/RGBToHex.js) * [RomanToDecimal](Conversions/RomanToDecimal.js) * [TemperatureConversion](Conversions/TemperatureConversion.js) * [TitleCaseConversion](Conversions/TitleCaseConversion.js) * [UpperCaseConversion](Conversions/UpperCaseConversion.js) * **Data-Structures** * **Array** * [LocalMaximomPoint](Data-Structures/Array/LocalMaximomPoint.js) * [NumberOfLocalMaximumPoints](Data-Structures/Array/NumberOfLocalMaximumPoints.js) * [QuickSelect](Data-Structures/Array/QuickSelect.js) * [Reverse](Data-Structures/Array/Reverse.js) * **Graph** * [Graph](Data-Structures/Graph/Graph.js) * [Graph2](Data-Structures/Graph/Graph2.js) * [Graph3](Data-Structures/Graph/Graph3.js) * **Heap** * [MaxHeap](Data-Structures/Heap/MaxHeap.js) * [MinHeap](Data-Structures/Heap/MinHeap.js) * [MinPriorityQueue](Data-Structures/Heap/MinPriorityQueue.js) * **Linked-List** * [AddTwoNumbers](Data-Structures/Linked-List/AddTwoNumbers.js) * [CycleDetection](Data-Structures/Linked-List/CycleDetection.js) * [DoublyLinkedList](Data-Structures/Linked-List/DoublyLinkedList.js) * [ReverseSinglyLinkedList](Data-Structures/Linked-List/ReverseSinglyLinkedList.js) * [SinglyCircularLinkedList](Data-Structures/Linked-List/SinglyCircularLinkedList.js) * [SinglyLinkedList](Data-Structures/Linked-List/SinglyLinkedList.js) * **Queue** * [CircularQueue](Data-Structures/Queue/CircularQueue.js) * [Queue](Data-Structures/Queue/Queue.js) * [QueueUsing2Stacks](Data-Structures/Queue/QueueUsing2Stacks.js) * **Stack** * [Stack](Data-Structures/Stack/Stack.js) * [StackES6](Data-Structures/Stack/StackES6.js) * **Tree** * [AVLTree](Data-Structures/Tree/AVLTree.js) * [BinarySearchTree](Data-Structures/Tree/BinarySearchTree.js) * [SegmentTree](Data-Structures/Tree/SegmentTree.js) * [Trie](Data-Structures/Tree/Trie.js) * **Vectors** * [Vector2](Data-Structures/Vectors/Vector2.js) * **Dynamic-Programming** * [CatalanNumbers](Dynamic-Programming/CatalanNumbers.js) * [ClimbingStairs](Dynamic-Programming/ClimbingStairs.js) * [CoinChange](Dynamic-Programming/CoinChange.js) * [EditDistance](Dynamic-Programming/EditDistance.js) * [FastFibonacciNumber](Dynamic-Programming/FastFibonacciNumber.js) * [FibonacciNumber](Dynamic-Programming/FibonacciNumber.js) * [FindMonthCalendar](Dynamic-Programming/FindMonthCalendar.js) * [KadaneAlgo](Dynamic-Programming/KadaneAlgo.js) * [LevenshteinDistance](Dynamic-Programming/LevenshteinDistance.js) * [LongestCommonSubsequence](Dynamic-Programming/LongestCommonSubsequence.js) * [LongestIncreasingSubsequence](Dynamic-Programming/LongestIncreasingSubsequence.js) * [LongestPalindromicSubsequence](Dynamic-Programming/LongestPalindromicSubsequence.js) * [LongestValidParentheses](Dynamic-Programming/LongestValidParentheses.js) * [MaxNonAdjacentSum](Dynamic-Programming/MaxNonAdjacentSum.js) * [MaxProductOfThree](Dynamic-Programming/MaxProductOfThree.js) * [MinimumCostPath](Dynamic-Programming/MinimumCostPath.js) * [NumberOfSubsetEqualToGivenSum](Dynamic-Programming/NumberOfSubsetEqualToGivenSum.js) * [RodCutting](Dynamic-Programming/RodCutting.js) * [Shuf](Dynamic-Programming/Shuf.js) * [SieveOfEratosthenes](Dynamic-Programming/SieveOfEratosthenes.js) * **Sliding-Window** * [LongestSubstringWithoutRepeatingCharacters](Dynamic-Programming/Sliding-Window/LongestSubstringWithoutRepeatingCharacters.js) * [PermutationinString](Dynamic-Programming/Sliding-Window/PermutationinString.js) * [SudokuSolver](Dynamic-Programming/SudokuSolver.js) * [TrappingRainWater](Dynamic-Programming/TrappingRainWater.js) * [TribonacciNumber](Dynamic-Programming/TribonacciNumber.js) * [UniquePaths](Dynamic-Programming/UniquePaths.js) * [UniquePaths2](Dynamic-Programming/UniquePaths2.js) * [ZeroOneKnapsack](Dynamic-Programming/ZeroOneKnapsack.js) * **Geometry** * [Circle](Geometry/Circle.js) * [Cone](Geometry/Cone.js) * [ConvexHullGraham](Geometry/ConvexHullGraham.js) * [Pyramid](Geometry/Pyramid.js) * [Sphere](Geometry/Sphere.js) * **Graphs** * [BellmanFord](Graphs/BellmanFord.js) * [BinaryLifting](Graphs/BinaryLifting.js) * [BreadthFirstSearch](Graphs/BreadthFirstSearch.js) * [BreadthFirstShortestPath](Graphs/BreadthFirstShortestPath.js) * [ConnectedComponents](Graphs/ConnectedComponents.js) * [Density](Graphs/Density.js) * [DepthFirstSearchIterative](Graphs/DepthFirstSearchIterative.js) * [DepthFirstSearchRecursive](Graphs/DepthFirstSearchRecursive.js) * [Dijkstra](Graphs/Dijkstra.js) * [DijkstraSmallestPath](Graphs/DijkstraSmallestPath.js) * [FloydWarshall](Graphs/FloydWarshall.js) * [Kosaraju](Graphs/Kosaraju.js) * [KruskalMST](Graphs/KruskalMST.js) * [LCABinaryLifting](Graphs/LCABinaryLifting.js) * [NodeNeighbors](Graphs/NodeNeighbors.js) * [NumberOfIslands](Graphs/NumberOfIslands.js) * [PrimMST](Graphs/PrimMST.js) * **Hashes** * [SHA1](Hashes/SHA1.js) * [SHA256](Hashes/SHA256.js) * **Maths** * [Abs](Maths/Abs.js) * [AliquotSum](Maths/AliquotSum.js) * [Area](Maths/Area.js) * [ArithmeticGeometricMean](Maths/ArithmeticGeometricMean.js) * [ArmstrongNumber](Maths/ArmstrongNumber.js) * [AverageMean](Maths/AverageMean.js) * [AverageMedian](Maths/AverageMedian.js) * [BinaryConvert](Maths/BinaryConvert.js) * [BinaryExponentiationIterative](Maths/BinaryExponentiationIterative.js) * [BinaryExponentiationRecursive](Maths/BinaryExponentiationRecursive.js) * [BinomialCoefficient](Maths/BinomialCoefficient.js) * [BisectionMethod](Maths/BisectionMethod.js) * [CheckKishnamurthyNumber](Maths/CheckKishnamurthyNumber.js) * [CircularArc](Maths/CircularArc.js) * [CollatzSequence](Maths/CollatzSequence.js) * [Coordinate](Maths/Coordinate.js) * [CoPrimeCheck](Maths/CoPrimeCheck.js) * [CountNumbersDivisible](Maths/CountNumbersDivisible.js) * [DecimalExpansion](Maths/DecimalExpansion.js) * [DecimalIsolate](Maths/DecimalIsolate.js) * [DegreeToRadian](Maths/DegreeToRadian.js) * [EulerMethod](Maths/EulerMethod.js) * [EulersTotient](Maths/EulersTotient.js) * [EulersTotientFunction](Maths/EulersTotientFunction.js) * [ExponentialFunction](Maths/ExponentialFunction.js) * [ExtendedEuclideanGCD](Maths/ExtendedEuclideanGCD.js) * [Factorial](Maths/Factorial.js) * [Factors](Maths/Factors.js) * [FareyApproximation](Maths/FareyApproximation.js) * [FermatPrimalityTest](Maths/FermatPrimalityTest.js) * [Fibonacci](Maths/Fibonacci.js) * [FigurateNumber](Maths/FigurateNumber.js) * [FindHcf](Maths/FindHcf.js) * [FindLcm](Maths/FindLcm.js) * [FindMaxRecursion](Maths/FindMaxRecursion.js) * [FindMin](Maths/FindMin.js) * [FindMinIterator](Maths/FindMinIterator.js) * [FriendlyNumbers](Maths/FriendlyNumbers.js) * [GetEuclidGCD](Maths/GetEuclidGCD.js) * [GridGet](Maths/GridGet.js) * [HexagonalNumber](Maths/HexagonalNumber.js) * [IntToBase](Maths/IntToBase.js) * [IsDivisible](Maths/IsDivisible.js) * [IsEven](Maths/IsEven.js) * [IsOdd](Maths/IsOdd.js) * [isPalindromeIntegerNumber](Maths/isPalindromeIntegerNumber.js) * [IsPronic](Maths/IsPronic.js) * [IsSquareFree](Maths/IsSquareFree.js) * [JugglerSequence](Maths/JugglerSequence.js) * [LeapYear](Maths/LeapYear.js) * [LinearSieve](Maths/LinearSieve.js) * [LiouvilleFunction](Maths/LiouvilleFunction.js) * [LucasSeries](Maths/LucasSeries.js) * [Mandelbrot](Maths/Mandelbrot.js) * [MatrixExponentiationRecursive](Maths/MatrixExponentiationRecursive.js) * [MatrixMultiplication](Maths/MatrixMultiplication.js) * [MeanAbsoluteDeviation](Maths/MeanAbsoluteDeviation.js) * [MeanSquareError](Maths/MeanSquareError.js) * [MidpointIntegration](Maths/MidpointIntegration.js) * [MobiusFunction](Maths/MobiusFunction.js) * [ModularArithmetic](Maths/ModularArithmetic.js) * [ModularBinaryExponentiationRecursive](Maths/ModularBinaryExponentiationRecursive.js) * [NumberOfDigits](Maths/NumberOfDigits.js) * [Palindrome](Maths/Palindrome.js) * [PascalTriangle](Maths/PascalTriangle.js) * [PerfectCube](Maths/PerfectCube.js) * [PerfectNumber](Maths/PerfectNumber.js) * [PerfectSquare](Maths/PerfectSquare.js) * [PermutationAndCombination](Maths/PermutationAndCombination.js) * [PiApproximationMonteCarlo](Maths/PiApproximationMonteCarlo.js) * [Polynomial](Maths/Polynomial.js) * [Pow](Maths/Pow.js) * [PowLogarithmic](Maths/PowLogarithmic.js) * [PrimeCheck](Maths/PrimeCheck.js) * [PrimeFactors](Maths/PrimeFactors.js) * [RadianToDegree](Maths/RadianToDegree.js) * [ReverseNumber](Maths/ReverseNumber.js) * [ReversePolishNotation](Maths/ReversePolishNotation.js) * [ShorsAlgorithm](Maths/ShorsAlgorithm.js) * [SieveOfEratosthenes](Maths/SieveOfEratosthenes.js) * [SieveOfEratosthenesIntArray](Maths/SieveOfEratosthenesIntArray.js) * [Signum](Maths/Signum.js) * [SimpsonIntegration](Maths/SimpsonIntegration.js) * [Softmax](Maths/Softmax.js) * [SquareRoot](Maths/SquareRoot.js) * [SquareRootLogarithmic](Maths/SquareRootLogarithmic.js) * [SumOfDigits](Maths/SumOfDigits.js) * [SumOfGeometricProgression](Maths/SumOfGeometricProgression.js) * [TwinPrime](Maths/TwinPrime.js) * [Volume](Maths/Volume.js) * [WhileLoopFactorial](Maths/WhileLoopFactorial.js) * [ZellersCongruenceAlgorithm](Maths/ZellersCongruenceAlgorithm.js) * **Navigation** * [Haversine](Navigation/Haversine.js) * **Project-Euler** * [Problem001](Project-Euler/Problem001.js) * [Problem002](Project-Euler/Problem002.js) * [Problem003](Project-Euler/Problem003.js) * [Problem004](Project-Euler/Problem004.js) * [Problem005](Project-Euler/Problem005.js) * [Problem006](Project-Euler/Problem006.js) * [Problem007](Project-Euler/Problem007.js) * [Problem008](Project-Euler/Problem008.js) * [Problem009](Project-Euler/Problem009.js) * [Problem010](Project-Euler/Problem010.js) * [Problem011](Project-Euler/Problem011.js) * [Problem012](Project-Euler/Problem012.js) * [Problem013](Project-Euler/Problem013.js) * [Problem014](Project-Euler/Problem014.js) * [Problem015](Project-Euler/Problem015.js) * [Problem016](Project-Euler/Problem016.js) * [Problem017](Project-Euler/Problem017.js) * [Problem018](Project-Euler/Problem018.js) * [Problem020](Project-Euler/Problem020.js) * [Problem023](Project-Euler/Problem023.js) * [Problem025](Project-Euler/Problem025.js) * [Problem028](Project-Euler/Problem028.js) * [Problem035](Project-Euler/Problem035.js) * [Problem044](Project-Euler/Problem044.js) * **Recursive** * [BinaryEquivalent](Recursive/BinaryEquivalent.js) * [BinarySearch](Recursive/BinarySearch.js) * [EucledianGCD](Recursive/EucledianGCD.js) * [Factorial](Recursive/Factorial.js) * [FibonacciNumberRecursive](Recursive/FibonacciNumberRecursive.js) * [FloodFill](Recursive/FloodFill.js) * [KochSnowflake](Recursive/KochSnowflake.js) * [LetterCombination](Recursive/LetterCombination.js) * [Palindrome](Recursive/Palindrome.js) * [SubsequenceRecursive](Recursive/SubsequenceRecursive.js) * [TowerOfHanoi](Recursive/TowerOfHanoi.js) * **Search** * [BinarySearch](Search/BinarySearch.js) * [ExponentialSearch](Search/ExponentialSearch.js) * [FibonacciSearch](Search/FibonacciSearch.js) * [InterpolationSearch](Search/InterpolationSearch.js) * [JumpSearch](Search/JumpSearch.js) * [LinearSearch](Search/LinearSearch.js) * [Minesweeper](Search/Minesweeper.js) * [QuickSelectSearch](Search/QuickSelectSearch.js) * [SlidingWindow](Search/SlidingWindow.js) * [StringSearch](Search/StringSearch.js) * [TernarySearch](Search/TernarySearch.js) * [UnionFind](Search/UnionFind.js) * **Sorts** * [AlphaNumericalSort](Sorts/AlphaNumericalSort.js) * [BeadSort](Sorts/BeadSort.js) * [BinaryInsertionSort](Sorts/BinaryInsertionSort.js) * [BogoSort](Sorts/BogoSort.js) * [BubbleSort](Sorts/BubbleSort.js) * [BucketSort](Sorts/BucketSort.js) * [CocktailShakerSort](Sorts/CocktailShakerSort.js) * [CombSort](Sorts/CombSort.js) * [CountingSort](Sorts/CountingSort.js) * [CycleSort](Sorts/CycleSort.js) * [FindSecondLargestElement](Sorts/FindSecondLargestElement.js) * [FisherYatesShuffle](Sorts/FisherYatesShuffle.js) * [FlashSort](Sorts/FlashSort.js) * [GnomeSort](Sorts/GnomeSort.js) * [HeapSort](Sorts/HeapSort.js) * [HeapSortV2](Sorts/HeapSortV2.js) * [InsertionSort](Sorts/InsertionSort.js) * [IntroSort](Sorts/IntroSort.js) * [MergeSort](Sorts/MergeSort.js) * [OddEvenSort](Sorts/OddEvenSort.js) * [PancakeSort](Sorts/PancakeSort.js) * [PigeonHoleSort](Sorts/PigeonHoleSort.js) * [QuickSort](Sorts/QuickSort.js) * [QuickSortRecursive](Sorts/QuickSortRecursive.js) * [RadixSort](Sorts/RadixSort.js) * [SelectionSort](Sorts/SelectionSort.js) * [ShellSort](Sorts/ShellSort.js) * [SimplifiedWiggleSort](Sorts/SimplifiedWiggleSort.js) * [StoogeSort](Sorts/StoogeSort.js) * [SwapSort](Sorts/SwapSort.js) * [TimSort](Sorts/TimSort.js) * [TopologicalSort](Sorts/TopologicalSort.js) * **String** * [AlphaNumericPalindrome](String/AlphaNumericPalindrome.js) * [AlternativeStringArrange](String/AlternativeStringArrange.js) * [BoyerMoore](String/BoyerMoore.js) * [CheckAnagram](String/CheckAnagram.js) * [CheckCamelCase](String/CheckCamelCase.js) * [CheckExceeding](String/CheckExceeding.js) * [CheckFlatCase](String/CheckFlatCase.js) * [CheckKebabCase](String/CheckKebabCase.js) * [CheckPalindrome](String/CheckPalindrome.js) * [CheckPangram](String/CheckPangram.js) * [CheckPascalCase](String/CheckPascalCase.js) * [CheckRearrangePalindrome](String/CheckRearrangePalindrome.js) * [CheckSnakeCase](String/CheckSnakeCase.js) * [CheckWordOccurrence](String/CheckWordOccurrence.js) * [CountLetters](String/CountLetters.js) * [CountSubstrings](String/CountSubstrings.js) * [CountVowels](String/CountVowels.js) * [CreatePermutations](String/CreatePermutations.js) * [DiceCoefficient](String/DiceCoefficient.js) * [FirstUniqueCharacter](String/FirstUniqueCharacter.js) * [FormatPhoneNumber](String/FormatPhoneNumber.js) * [GenerateGUID](String/GenerateGUID.js) * [HammingDistance](String/HammingDistance.js) * [IsPalindrome](String/IsPalindrome.js) * [KMPPatternSearching](String/KMPPatternSearching.js) * [LevenshteinDistance](String/LevenshteinDistance.js) * [Lower](String/Lower.js) * [MaxCharacter](String/MaxCharacter.js) * [MaxWord](String/MaxWord.js) * [PatternMatching](String/PatternMatching.js) * [PercentageOfLetters](String/PercentageOfLetters.js) * [PermutateString](String/PermutateString.js) * [ReverseString](String/ReverseString.js) * [ReverseWords](String/ReverseWords.js) * [ScrambleStrings](String/ScrambleStrings.js) * [Upper](String/Upper.js) * [ValidateCreditCard](String/ValidateCreditCard.js) * [ValidateEmail](String/ValidateEmail.js) * [ValidateUrl](String/ValidateUrl.js) * [ZFunction](String/ZFunction.js) * **Timing-Functions** * [GetMonthDays](Timing-Functions/GetMonthDays.js) * [IntervalTimer](Timing-Functions/IntervalTimer.js) * **Trees** * [BreadthFirstTreeTraversal](Trees/BreadthFirstTreeTraversal.js) * [DepthFirstSearch](Trees/DepthFirstSearch.js) * [FenwickTree](Trees/FenwickTree.js)