Skip to content

imlishiyuan/algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algorithm 基础算法的Java实现和LeetCode问题解决 📣📣📣

要求Java 17。基础算法配合极客时间王争的课程数据结构与算法之美食用。LeetCode配合力扣题库食用。

感谢OI Wiki

Quick Start

测试基于JUnit平台,测试用例在maven依赖下载完成后可直接运行。

algorithm包是基础算法实现。leetcode包是LeetCode的解题代码。

单元测试如下,主要是功能上的测试:

结构与入口

实现

基础算法

线性表

  • 链表、循环链表、双向链表
  • 基于数组的队列、基于链表的队列
  • 基于数组的栈、基于链表的栈
  • 跳表

哈希表

  • 拉链法哈希表

排序

  • 冒泡排序
  • 桶排序
  • 计数排序
  • 堆排序
  • 插入排序
  • 归并排序
  • 快速排序
  • 基数排序
  • 选择排序
  • 希尔排序

  • 大、小顶堆

  • 二叉搜索树
  • 红黑树
  • B+数

  • 邻接表、邻接矩阵
  • 深度优先搜索、广度优先搜索
  • 拓扑排序
  • Dijkstra最短路径算法
  • A*搜索

二分法

  • 二分查找

字符串匹配

  • BF算法
  • BK算法
  • BM算法
  • KMP算法
  • 字典树
  • AC自动机

贪心

  • 霍夫曼编码

回溯

  • 正则表达式

动态规划

  • 编辑距离算法

杂项

  • 位图与布隆过滤器
  • 朴素贝叶斯算法

LeetCode

  • 10 :正则表达式
  • 34 :二分查找变体问题
  • 46 :全排列问题
  • 51 : N皇后
  • 52 : N皇后2
  • 70 : 爬楼梯问题
  • 135: 分发糖果
  • 206: 反转链表
  • 215:数组中的第K个最大元素
  • 295:数据流中位数
  • 300 : 最长递增子序列
  • 322 : 零钱兑换
  • 347 :前 K 个高频元素
  • 面试题 17.14. 最小K个数
  • 面试题 08.06. 汉诺塔问题

About

Java算法实现,包括基础算法和leetcode解题两部分

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages