@gkucmierz/utils

NPM Version License Downloads

A collection of useful utility functions and data structures for solving algorithmic tasks, competitive programming, and everyday development.

📦 Installation

npm install @gkucmierz/utils

🚀 Features

This library provides a wide range of mathematical functions and data structures, including:

  • Data Structures:

    • SetCnt: A set-like structure with element counting.
    • Trie: Efficient prefix tree implementation.
    • Heap: Min-heap priority queue.
    • ListNode: Linked list node implementation.
    • matrixAsArray: 2D matrix representation as a flat array.
  • Number Theory:

    • gcd, lcm: Greatest Common Divisor and Least Common Multiple (supports BigInt).
    • factors: Prime factorization.
    • phi: Euler's totient function.
    • mod, powMod: Modular arithmetic with Python-like behavior for negative numbers.
    • egcd: Extended Euclidean Algorithm.
    • tonelliShanksBI: Modular square root algorithm.
  • Sequences & Formulas:

    • gpn: Generalized Pentagonal Numbers.
    • heronsFormula: Triangle area calculation.
    • squareRoot: Integer square root using Newton's method.
  • String & Encoding:

    • base64: Base64 and Base64Url encoding/decoding.
    • copyCase: Match case of a string to another.
    • bijectiveNumeration: Bijective base-k numeration system.
  • Utilities:

    • memoize: Function memoization based on arguments.
    • binarySearch: Various binary search implementations (exact, lower bound, upper bound).
    • range2array, array2range: Convert between ranges and arrays.
    • getType: Precise type checking.

📚 Documentation

Full documentation with examples is available at: 👉 https://gkucmierz.github.io/utils

🔗 Links

📄 License

MIT