arayts
Version:
让 TypeScript 开发如丝般顺滑。ArayTS 提供了一套高效、优雅的算法工具集,包含常用的数据结构与算法实现,帮助开发者轻松构建可靠的应用程序。
86 lines • 2.26 kB
TypeScript
/**
* 函数记忆化
* @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