UNPKG

arayts

Version:

让 TypeScript 开发如丝般顺滑。ArayTS 提供了一套高效、优雅的算法工具集,包含常用的数据结构与算法实现,帮助开发者轻松构建可靠的应用程序。

86 lines 2.26 kB
/** * 函数记忆化 * @param fn 需要缓存的函数 */ export declare const memoize: <T extends (...args: any[]) => any>(fn: T) => (...args: Parameters<T>) => ReturnType<T>; /** * LRU缓存 */ export declare class LRUCache<K, V> { private capacity; private cache; constructor(capacity: number); get(key: K): V | undefined; put(key: K, value: V): void; } /** * 洗牌算法 */ export declare const shuffle: <T>(arr: T[]) => T[]; /** * 最长公共子序列 */ export declare const longestCommonSubsequence: (text1: string, text2: string) => number; /** * 最短编辑距离(Levenshtein Distance) */ export declare const levenshteinDistance: (str1: string, str2: string) => number; /** * 快速排序 */ export declare const quickSort: <T>(arr: T[]) => T[]; /** * 二分查找 * @returns 目标值的索引,未找到返回-1 */ export declare const binarySearch: <T>(arr: T[], target: T) => number; /** * 并查集 */ export declare class UnionFind { private parent; private rank; constructor(size: number); find(x: number): number; union(x: number, y: number): void; connected(x: number, y: number): boolean; } /** * 二叉树节点 */ export declare class TreeNode<T> { value: T; left: TreeNode<T> | null; right: TreeNode<T> | null; constructor(value: T, left?: TreeNode<T> | null, right?: TreeNode<T> | null); } /** * 二叉树遍历 */ export declare const treeTraversal: { preorder<T>(root: TreeNode<T>): T[]; inorder<T_1>(root: TreeNode<T_1>): T_1[]; postorder<T_2>(root: TreeNode<T_2>): T_2[]; }; /** * KMP字符串匹配 * @returns 模式串在文本串中的起始位置,未找到返回-1 */ export declare const kmp: (text: string, pattern: string) => number; /** * Trie(前缀树) */ export declare class Trie { private root; insert(word: string): void; search(word: string): boolean; startsWith(prefix: string): boolean; private traverse; } /** * 拓扑排序(Kahn算法) * @param graph 邻接表表示的有向图 * @returns 拓扑排序结果,如果存在环则返回空数组 */ export declare const topologicalSort: (graph: Map<number, number[]>) => number[]; //# sourceMappingURL=algorithms.d.ts.map