# README

> 本项目内容主要参考[算法模板](https://github.com/greyireland/algorithm-pattern)，在此感谢原作者的整理与贡献

在原项目的基础上，尽量保持了原有的结构划分，并做了一点微小的工作：

* 代码改写为`java`语言版本
* 调整内容，新增了几种算法
* 补充部分[leetcode中国站](https://leetcode-cn.com/)的题目链接
* 书籍链接：[GitBook](https://chienmy.gitbook.io/algorithm-pattern-java/)

## 核心内容

### 数据结构

* [链表](https://chienmy.gitbook.io/algorithm-pattern-java/shu-ju-jie-gou/linked_list)
* [栈和队列](https://chienmy.gitbook.io/algorithm-pattern-java/shu-ju-jie-gou/stack_queue)
* [二叉树](https://chienmy.gitbook.io/algorithm-pattern-java/shu-ju-jie-gou/binary_tree)

### 基础算法

* [滑动窗口](https://chienmy.gitbook.io/algorithm-pattern-java/ji-chu-suan-fa/slide_window)
* [回溯算法](https://chienmy.gitbook.io/algorithm-pattern-java/ji-chu-suan-fa/backtrack)
* [二分搜索](https://chienmy.gitbook.io/algorithm-pattern-java/ji-chu-suan-fa/binary_search)
* [排序算法](https://chienmy.gitbook.io/algorithm-pattern-java/ji-chu-suan-fa/sort)
* [动态规划](https://chienmy.gitbook.io/algorithm-pattern-java/ji-chu-suan-fa/dp)
* [并查集](https://chienmy.gitbook.io/algorithm-pattern-java/ji-chu-suan-fa/disjoin_set)

### 进阶算法

> 此处整理了一些特殊情况下适用的算法

* [贪心算法](https://chienmy.gitbook.io/algorithm-pattern-java/jin-jie-suan-fa/greedy)
* [快速选择](https://chienmy.gitbook.io/algorithm-pattern-java/jin-jie-suan-fa/quick_select)
* [三向切分快速排序](https://chienmy.gitbook.io/algorithm-pattern-java/jin-jie-suan-fa/three_way_quick_sort)
* [二进制运算](https://chienmy.gitbook.io/algorithm-pattern-java/jin-jie-suan-fa/binary_op)

## 刷题建议

1. 巩固基础：先从数据结构的基础题做起，掌握常见数据结构以及对应操作的实现
2. 算法专题：推荐按类型刷题，在几天之内做完同一种类型的题目，可以迅速理解
3. 查漏补缺：对于某些不常见的特殊解法，在最后快速刷掉，务必留下印象

> ### 欢迎 star 本项目
>
> Github地址：<https://github.com/chienmy/algorithm-pattern-java>
>
> 本项目采用[知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议](http://creativecommons.org/licenses/by-nc-sa/4.0/)进行许可。

![](https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png)
