项目简介
本项目是一个专注于算法刷题的代码仓库,使用JavaScript和TypeScript编写。项目涵盖了堆、树、动态规划等多种算法类型,可用于练习和学习各类算法问题。
项目的主要特性和功能
- 堆:有优先队列、双堆等实现,可解决“最后一块石头的重量”等问题。
- 树:包含二叉树、平衡二叉搜索树相关操作,能解决“二叉树的垂序遍历”等问题。
- 动态规划:可解决“石子游戏”等问题。
- 广搜:含双向广搜,能解决“单词接龙”等问题。
- 二进制:可解决“位1的个数”等问题。
- 深搜:能解决“自由之路”等问题。
- 滑动窗口:可解决“至多包含两个不同字符的最长子串”等问题。
- 贪心:能解决“根据身高重建队列”等问题。
- 数学:可解决“数字1的个数”等问题。
- 排列组合:能解决“三数之和的多种可能”等问题。
- 栈:含单调栈,可解决“最大矩形”等问题。
- 差分:能解决“会议室”等问题。
- 链表:可解决“排序链表”等问题。
- 排序:包括基数排序等,能解决“最大间距”等问题。
- 哈希表:可解决“有效的字母异位词”等问题。
- 区间问题:能解决“用最少数量的箭引爆气球”等问题。
- 树状数组:可解决“区间和的个数”等问题。
- 图:含拓扑排序等,能解决“喧闹和富有”等问题。
- 字符串:可解决“翻转字符串里的单词”等问题。
- 前缀和:能解决“将x减到0的最小操作数”等问题。
- 数组:可解决“数组列表中的最大距离”等问题。
- 回溯:能解决“将数组拆分成斐波那契序列”等问题。
- 查并集:可解决“近义词句子”等问题。
- 双指针:能解决“小于K的两数之和”等问题。
- trie树:可解决“匹配子序列的单词数”等问题。
- 桶:能解决“匹配子序列的单词数”等问题。
- 递归:可解决“斐波那契数”等问题。
- 回文:能解决“删除回文子序列”等问题。
- 最长递增序列:可解决“最长连续递增序列”等问题。
- 摩尔投票法:能解决“主要元素”等问题。
- 分治:可解决“漂亮数组”等问题。
- 最长公共子序列问题:能解决“得到子序列的最少操作次数”等问题。
- 脑筋急转弯:可解决“逃脱阻碍者”等问题。
- 二叉搜索树:能解决“二叉搜索树中的搜索”等问题。
- 随机:可解决“打乱数组”等问题。
- 矩阵:能解决“保持城市天际线”等问题。
安装使用步骤
假设用户已经下载了本项目的源码文件。
1. 复制项目:
bash
2. 安装依赖:
bash
cd algorithm-practice
npm install
3. 运行测试:
bash
npm test
4. 调试代码:
通过以上步骤,您可以轻松地在本项目中进行算法刷题,并利用提供的工具进行调试和测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】