# algorithm **Repository Path**: lishiyuan_cn/algorithm ## Basic Information - **Project Name**: algorithm - **Description**: Java算法实现,包括基础算法和leetcode解题两部分 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-09 - **Last Updated**: 2025-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Algorithm 基础算法的Java实现和LeetCode问题解决 📣📣📣 **要求Java 17**。基础算法配合极客时间王争的课程[数据结构与算法之美](https://time.geekbang.org/column/intro/100017301?tab=catalog)食用。LeetCode配合[力扣题库](https://leetcode.cn/problemset/)食用。 感谢[OI Wiki](https://oi-wiki.org/) ## Quick Start 测试基于JUnit平台,测试用例在maven依赖下载完成后可直接运行。 algorithm包是基础算法实现。leetcode包是LeetCode的解题代码。 单元测试如下,主要是功能上的测试: ![结构与入口](img.png) ## 实现 ### 基础算法 **线性表** - [x] 链表、循环链表、双向链表 - [x] 基于数组的队列、基于链表的队列 - [x] 基于数组的栈、基于链表的栈 - [x] 跳表 **哈希表** - [x] 拉链法哈希表 **排序** - [x] 冒泡排序 - [x] 桶排序 - [x] 计数排序 - [x] 堆排序 - [x] 插入排序 - [x] 归并排序 - [x] 快速排序 - [x] 基数排序 - [x] 选择排序 - [x] 希尔排序 **堆** - [x] 大、小顶堆 **树** - [x] 二叉搜索树 - [x] 红黑树 - [x] B+数 **图** - [x] 邻接表、邻接矩阵 - [x] 深度优先搜索、广度优先搜索 - [x] 拓扑排序 - [x] Dijkstra最短路径算法 - [x] A*搜索 **二分法** - [x] 二分查找 **字符串匹配** - [x] BF算法 - [x] BK算法 - [x] BM算法 - [x] KMP算法 - [x] 字典树 - [x] AC自动机 **贪心** - [x] 霍夫曼编码 **回溯** - [x] 正则表达式 **动态规划** - [x] 编辑距离算法 **杂项** - [x] 位图与布隆过滤器 - [x] 朴素贝叶斯算法 ### LeetCode - [x] 10 :正则表达式 - [x] 34 :二分查找变体问题 - [x] 46 :全排列问题 - [x] 51 : N皇后 - [x] 52 : N皇后2 - [x] 70 : 爬楼梯问题 - [x] 135: 分发糖果 - [x] 206: 反转链表 - [x] 215:数组中的第K个最大元素 - [x] 295:数据流中位数 - [x] 300 : 最长递增子序列 - [x] 322 : 零钱兑换 - [x] 347 :前 K 个高频元素 - [x] 面试题 17.14. 最小K个数 - [x] 面试题 08.06. 汉诺塔问题