# introduction

简体中文 | [English](https://github.com/azl397985856/leetcode/blob/master/README.en.md)

***

我们的 slogon 是： **只有熟练掌握基础的数据结构与算法，才能对复杂问题迎刃有余。**

## 🔥🔥🔥 我的新书《算法通关之路》出版了 🔥🔥🔥

我的新书《算法通关之路》出版了。这本书和本仓库内容几乎没有任何重叠，采用 Python 编写，不过也提供了 Java，CPP 以及 JS 代码供大家参考。

![](https://p.ipic.vip/l9sxsa.jpg)

[图书介绍](https://mp.weixin.qq.com/s?__biz=MzI4MzUxNjI3OA==\&mid=2247489484\&idx=1\&sn=a16664605744a970f8a81e64affb01a7\&chksm=eb88dbd5dcff52c3ecee38c7f594df6d16ed7ca2852ad4d0d86bab99483f4413c30e98b00e43\&token=715489125\&lang=zh_CN#rd)

大家也可以扫描下方二维码购买。

![](https://p.ipic.vip/ny26q0.jpg)

## 电子书

[在线阅读](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/)

这是我将我的所有公开的算法资料整理的一个电子书，全部题目信息中文化，以前会有一些英文描述，感谢 @CYL 的中文整理。

![](https://p.ipic.vip/1nxfdk.jpg)

**限时免费下载！后期随时可能收费**

有些动图，在做成电子书（比如 pdf）的时候自然就变没了，如果需要看动图的， 可以去我的公众号《力扣加加》或者我的 leetcode 题解仓库看。

![](https://p.ipic.vip/h9nm77.jpg)

> epub 还是有动图的

另外有些内容只在公众号发布，因此大家觉得内容不错的话，可以关注一下。如果再给 ➕ 个星标就更棒啦！

> 大家也可以用 Github 提供的 [RSS](https://github.com/azl397985856/leetcode/commits.atom) 来订阅我的仓库更新。

## 刷题群

组队刷题活动，关注上面的公众号《力扣加加》回复 leetcode 即可获取进群方式，从此刷题不再孤单。

另外春招已经开始了。你是不是已经开始准备了呢？为了帮助大家获得更好的 offer，lucifer 开辟了「春招冲冲冲」栏目。

第一期我们的猎物是「虾皮」。来看看虾皮的算法题难度几何吧！

* [春招冲冲冲](https://mp.weixin.qq.com/s?__biz=MzI4MzUxNjI3OA==\&mid=2247487632\&idx=1\&sn=830fe267d835e5acbfc417787f85f1c1\&chksm=eb88dc89dcff559f49913c0f2dec77b1d06c2ddbe2c6c299b32b3e49c2efaf8b11ac0aedce8f\&token=1676518002\&lang=zh_CN#rd)

## 图片加载不出来如何解决？

<https://github.com/fe-lucifer/fanqiang>

## 仓库介绍

leetcode 题解，记录自己的 leetcode 解题之路。

本仓库目前分为**五个**部分：

* 第一个部分是 leetcode 经典题目的解析，包括思路，关键点和具体的代码实现。
* 第二部分是对于数据结构与算法的总结
* 第三部分是 anki 卡片， 将 leetcode 题目按照一定的方式记录在 anki 中，方便大家记忆。
* 第四部分是每日一题，每日一题是在交流群（包括微信和 qq）里进行的一种活动，大家一起 解一道题，这样讨论问题更加集中，会得到更多的反馈。而且 这些题目可以被记录下来，日后会进行筛选添加到仓库的题解模块。
* 第五部分是计划， 这里会记录将来要加入到以上三个部分内容

## 仓库食用指南

* 对于最近添加的部分， 后面会有 标注
* 对于最近更新的部分， 后面会有 🖊 标注
* 这里有一张互联网公司面试中经常考察的问题类型总结的思维导图，我们可以结合图片中的信息分析一下。

![leetcode-zhihu](https://p.ipic.vip/pe0egq.jpg)

（图片来自 leetcode)

其中算法，主要是以下几种：

* 基础技巧：分治、二分、贪心
* 排序算法：快速排序、归并排序、计数排序
* 搜索算法：回溯、递归、深度优先遍历，广度优先遍历，二叉搜索树等
* 图论：最短路径、最小生成树
* 动态规划：背包问题、最长子序列

数据结构，主要有如下几种：

* 数组与链表：单 / 双向链表
* 栈与队列
* 哈希表
* 堆：最大堆 ／ 最小堆
* 树与图：最近公共祖先、并查集
* 字符串：前缀树（字典树） ／ 后缀树

## 数据结构与算法的总结(25 篇)

* [数据结构总览](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/basic-data-structure)
* [链表专题](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/linked-list)
* [树专题](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/tree)
* [堆专题（上）](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/heap)
* [堆专题（下）](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/heap-2)
* [二叉树的遍历](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/binary-tree-traversal)
* [动态规划](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/dynamic-programming)
* [回溯](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/backtrack)
* [哈夫曼编码和游程编码](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/run-length-encode-and-huffman-encode)
* [布隆过滤器](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/bloom-filter)🖊
* [前缀树](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/trie)🖊
* [《日程安排》专题](https://lucifer.ren/blog/2020/02/03/leetcode-%E6%88%91%E7%9A%84%E6%97%A5%E7%A8%8B%E5%AE%89%E6%8E%92%E8%A1%A8%E7%B3%BB%E5%88%97/)
* [《构造二叉树》专题](https://lucifer.ren/blog/2020/02/08/%E6%9E%84%E9%80%A0%E4%BA%8C%E5%8F%89%E6%A0%91%E4%B8%93%E9%A2%98/)
* [滑动窗口（思路 + 模板）](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/slide-window)
* [位运算](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/bit)
* [小岛问题](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/island)🖊
* [最大公约数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/gcd)
* [并查集](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/union-find)
* [平衡二叉树专题](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/balanced-tree)
* [蓄水池抽样](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/reservoid-sampling)
* [单调栈](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/monotone-stack)

## 精选题解（9 篇）

* [字典序列删除](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/selected/a-deleted)
* [一次搞定前缀和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/selected/atmostk)
* [字节跳动的算法面试题是什么难度？](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/selected/byte-dance-algo-ex)
* [字节跳动的算法面试题是什么难度？（第二弹）](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/selected/byte-dance-algo-ex-2017)
* [《我是你的妈妈呀》 - 第一期](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/selected/mother-01)
* [一文带你看懂二叉树的序列化](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/selected/serialize)
* [穿上衣服我就不认识你了？来聊聊最长上升子序列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/selected/lis)
* [你的衣服我扒了 - 《最长公共子序列》](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/selected/lcs)
* [一文看懂《最大子序列和问题》](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/selected/lss)

## 插件

或许是一个可以改变你刷题效率的浏览器扩展插件。

插件地址：<https://chrome.google.com/webstore/detail/leetcode-cheatsheet/fniccleejlofifaakbgppmbbcdfjonle?hl=en-US。>

> 不能访问谷歌商店的朋友可以去我的公众号回复插件获取离线版。强烈推荐大家使用谷歌商店安装， 这样如果有更新可以自动安装，毕竟咱们的插件更新还是蛮快的。

## 怎么刷 LeetCode？

* [我是如何刷 LeetCode 的](https://www.zhihu.com/question/280279208/answer/824585814)
* [算法小白如何高效、快速刷 leetcode？](https://www.zhihu.com/question/321738058/answer/1279464192)
* [刷题效率低？或许你就差这么一个插件](https://lucifer.ren/blog/2020/06/06/algo-chrome-extension/)
* [力扣刷题插件](https://lucifer.ren/blog/2020/08/16/leetcode-cheat/)

## 《91 天学算法》限时活动

很多教育机构宣传的 7 天，一个月搞定算法面试的，我大概都了解了下，不怎么靠谱。学习算法这东西，还是要考积累，没有量变是不可能有质变的。还有的人选择看书，这是一个不错的选择。但是很多人选了过时的或者质量差的书，又或者不会去写书中给的练习题，导致效果很差。

基于这几个原因，我组织了一个 91 天刷题活动，通过一个相对比较长的时间（91 天）给出最新的学习路径，并强制大家打卡这种高强度练习来让大家**在 91 天后遇见更好的自己**。详细活动介绍可以点下方链接查看。另外往期的讲义也在下面了，大家可以看看合不合你的口味。

最后送给大家一句话： **坚持下去，会有突然间成长的一天**。

* [91 天学算法第三期视频会议总结](https://lucifer.ren/blog/2021/03/01/91meeting-season-3-1/)
* [第一期讲义-二分法](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/91/binary-search)
* [第一期讲义-双指针](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/91/two-pointers)
* [第三期正在火热进行中](https://lucifer.ren/blog/2021/01/19/91-algo-3/)

## leetcode 经典题目的解析（200 多道）

> 这里仅列举具有**代表性题目**，并不是全部题目

目前更新了 200 多道题解，加上专题涉及的题目，差不多有 **300 道**。

### 简单难度题目合集

这里的题目难度比较小， 大多是模拟题，或者是很容易看出解法的题目，另外简单题目一般使用暴力法都是可以解决的。 这个时候只有看一下数据范围，思考下你的算法复杂度就行了。

当然也不排除很多 hard 题目也可以暴力模拟，大家平时多注意数据范围即可。

以下是我列举的经典题目（带 91 字样的表示出自 **91 天学算法**活动）：

* [面试题 17.12. BiNode](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/binode-lcci)
* [0001. 两数之和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/1.two-sum) 👍
* [0020. 有效的括号](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/20.valid-parentheses) 👍
* [0021. 合并两个有序链表](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/21.merge-two-sorted-lists)
* [0026. 删除排序数组中的重复项](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/26.remove-duplicates-from-sorted-array)
* [0053. 最大子序和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/53.maximum-sum-subarray-cn)
* [0066. 加一](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/66.plus-one) 91
* [0088. 合并两个有序数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/88.merge-sorted-array)
* [0101. 对称二叉树](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/101.symmetric-tree)
* [0104. 二叉树的最大深度](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/104.maximum-depth-of-binary-tree)
* [0108. 将有序数组转换为二叉搜索树](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/108.convert-sorted-array-to-binary-search-tree)
* [0121. 买卖股票的最佳时机](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/121.best-time-to-buy-and-sell-stock)
* [0122. 买卖股票的最佳时机 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/122.best-time-to-buy-and-sell-stock-ii)
* [0125. 验证回文串](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/125.valid-palindrome) 👍
* [0136. 只出现一次的数字](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/136.single-number)
* [0155. 最小栈](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/155.min-stack)
* [0160. 相交链表](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/160.intersection-of-two-linked-lists) 91
* [0167. 两数之和 II 输入有序数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/167.two-sum-ii-input-array-is-sorted)
* [0169. 多数元素](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/169.majority-element)
* [0172. 阶乘后的零](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/172.factorial-trailing-zeroes)
* [0190. 颠倒二进制位](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/190.reverse-bits)
* [0191. 位 1 的个数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/191.number-of-1-bits) 👍
* [0198. 打家劫舍](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/198.house-robber)
* [0203. 移除链表元素](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/203.remove-linked-list-elements)
* [0206. 反转链表](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/206.reverse-linked-list)
* [0219. 存在重复元素 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/219.contains-duplicate-ii)
* [0226. 翻转二叉树](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/226.invert-binary-tree)
* [0232. 用栈实现队列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/232.implement-queue-using-stacks) 91
* [0263. 丑数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/263.ugly-number)
* [0283. 移动零](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/283.move-zeroes)
* [0342. 4 的幂](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/342.power-of-four)
* [0349. 两个数组的交集](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/349.intersection-of-two-arrays)
* [0371. 两整数之和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/371.sum-of-two-integers)
* [401. 二进制手表](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/401.binary-watch)
* [0437. 路径总和 III](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/437.path-sum-iii)
* [0455. 分发饼干](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/455.assigncookies)
* [0504. 七进制数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/504.base-7)
* [0575. 分糖果](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/575.distribute-candies)
* [0665. 非递减数列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/665.non-decreasing-array)
* [821. 字符的最短距离](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/821.shortest-distance-to-a-character) 91
* [0874. 模拟行走机器人](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/874.walking-robot-simulation)
* [1128. 等价多米诺骨牌对的数量](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/1128.number-of-equivalent-domino-pairs)
* [1260. 二维网格迁移](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/1260.shift-2d-grid)
* [1332. 删除回文子序列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/easy/1332.remove-palindromic-subsequences)

### 中等难度题目合集

中等题目是力扣比例最大的部分，因此这部分我的题解也是最多的。 大家不要太过追求难题，先把中等难度题目做熟了再说。

这部分的题目要不需要我们挖掘题目的内含信息， 将其抽象成简单题目。 要么是一些写起来比较麻烦的题目， 一些人编码能力不行就挂了。因此大家一定要自己做， 即使看了题解”会了“，也要自己码一遍。自己不亲自写一遍，里面的细节永远不知道。

以下是我列举的经典题目（带 91 字样的表示出自 **91 天学算法**活动）：

* [面试题 17.09. 第 k 个数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/get-kth-magic-number-lcci)
* [面试题 17.23. 最大黑方阵](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/max-black-square-lcci)🆕
* [面试题 16.16. 部分排序](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/sub-sort-lcci)
* [Increasing Digits](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/increasing-digits) 👍
* [Longest Contiguously Strictly Increasing Sublist After Deletion](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/longest-contiguously-strictly-increasing-sublist-after-deletion) 👍
* [Consecutive Wins](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/consecutive-wins)
* [Number of Substrings with Single Character Difference](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/number-of-substrings-with-single-character-difference)
* [Bus Fare](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/bus-fare) 👍
* [Minimum Dropping Path Sum](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/minimum-dropping-path-sum)
* [Every Sublist Min Sum](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/every-sublist-min-sum)
* [Maximize the Number of Equivalent Pairs After Swaps](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/maximize-the-number-of-equivalent-pairs-after-swaps)
* [0002. 两数相加](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/2.add-two-numbers)
* [0003. 无重复字符的最长子串](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/3.longest-substring-without-repeating-characters)
* [0005. 最长回文子串](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/5.longest-palindromic-substring)
* [0011. 盛最多水的容器](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/11.container-with-most-water)
* [0015. 三数之和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/15.3sum)
* [0017. 电话号码的字母组合](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/17.letter-combinations-of-a-phone-number)
* [0019. 删除链表的倒数第 N 个节点](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/19.removenthnodefromendoflist)
* [0022. 括号生成](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/22.generate-parentheses)
* [0024. 两两交换链表中的节点](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/24.swapnodesinpairs)
* [0029. 两数相除](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/29.divide-two-integers)
* [0031. 下一个排列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/31.next-permutation)
* [0033. 搜索旋转排序数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/33.search-in-rotated-sorted-array)
* [0039. 组合总和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/39.combination-sum)
* [0040. 组合总和 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/40.combination-sum-ii)
* [0046. 全排列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/46.permutations)
* [0047. 全排列 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/47.permutations-ii)
* [0048. 旋转图像](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/48.rotate-image)
* [0049. 字母异位词分组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/49.group-anagrams)
* [0050. Pow(x, n)](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/50.pow-x-n)
* [0055. 跳跃游戏](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/55.jump-game)
* [0056. 合并区间](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/56.merge-intervals)
* [0060. 第 k 个排列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/60.permutation-sequence)
* [0061. 旋转链表](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/61.rotate-list) 91
* [0062. 不同路径](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/62.unique-paths)
* [0073. 矩阵置零](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/73.set-matrix-zeroes)
* [0075. 颜色分类](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/75.sort-colors)
* [0078. 子集](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/78.subsets)
* [0079. 单词搜索](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/79.word-search)
* [0080. 删除排序数组中的重复项 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/80.remove-duplicates-from-sorted-array-ii)
* [0086. 分隔链表](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/86.partition-list)
* [0090. 子集 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/90.subsets-ii)
* [0091. 解码方法](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/91.decode-ways)
* [0092. 反转链表 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/92.reverse-linked-list-ii)
* [0094. 二叉树的中序遍历](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/94.binary-tree-inorder-traversal)
* [0095. 不同的二叉搜索树 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/95.unique-binary-search-trees-ii)
* [0096. 不同的二叉搜索树](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/96.unique-binary-search-trees)
* [0098. 验证二叉搜索树](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/98.validate-binary-search-tree)
* [0102. 二叉树的层序遍历](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/102.binary-tree-level-order-traversal)
* [0103. 二叉树的锯齿形层次遍历](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/103.binary-tree-zigzag-level-order-traversal)
* [0113. 路径总和 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/113.path-sum-ii)
* [0129. 求根到叶子节点数字之和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/129.sum-root-to-leaf-numbers)
* [0130. 被围绕的区域](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/130.surrounded-regions)
* [0131. 分割回文串](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/131.palindrome-partitioning)
* [0139. 单词拆分](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/139.word-break)
* [0144. 二叉树的前序遍历](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/144.binary-tree-preorder-traversal)
* [0147. 对链表进行插入排序](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/147.insertion-sort-list)
* [0150. 逆波兰表达式求值](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/150.evaluate-reverse-polish-notation)
* [0152. 乘积最大子数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/152.maximum-product-subarray)
* [0153. 寻找旋转排序数组中的最小值](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/153.find-minimum-in-rotated-sorted-array)
* [0199. 二叉树的右视图](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/199.binary-tree-right-side-view)
* [0200. 岛屿数量](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/200.number-of-islands)
* [0201. 数字范围按位与](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/201.bitwise-and-of-numbers-range)
* [0208. 实现 Trie (前缀树)](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/208.implement-trie-prefix-tree)
* [0209. 长度最小的子数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/209.minimum-size-subarray-sum)
* [0211. 添加与搜索单词 - 数据结构设计](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/211.add-and-search-word-data-structure-design)
* [0215. 数组中的第 K 个最大元素](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/215.kth-largest-element-in-an-array)
* [0220. 存在重复元素 III](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/220.contains-duplicate-iii)
* [0221. 最大正方形](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/221.maximal-square)
* [0227. 基本计算器 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/227.basic-calculator-ii) 👍
* [0229. 求众数 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/229.majority-element-ii) 👍
* [0230. 二叉搜索树中第 K 小的元素](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/230.kth-smallest-element-in-a-bst)
* [0236. 二叉树的最近公共祖先](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/236.lowest-common-ancestor-of-a-binary-tree)
* [0238. 除自身以外数组的乘积](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/238.product-of-array-except-self)
* [0240. 搜索二维矩阵 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/240.search-a-2-d-matrix-ii)
* [0279. 完全平方数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/279.perfect-squares)
* [0309. 最佳买卖股票时机含冷冻期](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/309.best-time-to-buy-and-sell-stock-with-cooldown) 👍
* [0322. 零钱兑换](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/322.coin-change)
* [0328. 奇偶链表](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/328.odd-even-linked-list)
* [0331. 验证二叉树的前序序列化](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/331.verify-preorder-serialization-of-a-binary-tree) 👍
* [0334. 递增的三元子序列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/334.increasing-triplet-subsequence) 👍
* [0337. 打家劫舍 III](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/337.house-robber-iii)
* [0343. 整数拆分](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/343.integer-break) 👍
* [0365. 水壶问题](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/365.water-and-jug-problem)
* [0378. 有序矩阵中第 K 小的元素](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/378.kth-smallest-element-in-a-sorted-matrix)
* [0380. 常数时间插入、删除和获取随机元素](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/380.insert-delete-getrandom-o1) 👍
* [0394. 字符串解码](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/394.decode-string) 91 👍
* [0416. 分割等和子集](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/416.partition-equal-subset-sum)
* [0424. 替换后的最长重复字符](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/424.longest-repeating-character-replacement)
* [0438. 找到字符串中所有字母异位词](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/438.find-all-anagrams-in-a-string)
* [0445. 两数相加 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/445.add-two-numbers-ii)
* [0454. 四数相加 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/454.4-sum-ii)
* [0456. 132 模式](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/456.132-pattern) 👍
* [0457.457. 环形数组是否存在循环](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/457.circular-array-loop)
* [0464. 我能赢么](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/464.can-i-win) 👍
* [0470. 用 Rand7() 实现 Rand10](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/470.implement-rand10-using-rand7)
* [0473. 火柴拼正方形](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/473.matchsticks-to-square) 👍
* [0494. 目标和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/494.target-sum)
* [0516. 最长回文子序列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/516.longest-palindromic-subsequence)
* [0513. 找树左下角的值](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/513.find-bottom-left-tree-value) 91
* [0518. 零钱兑换 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/518.coin-change-2)
* [0525. 连续数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/525.contiguous-array)
* [0547. 朋友圈](https://github.com/azl397985856/leetcode/blob/master/problems/547.friend-circles.md)
* [0560. 和为 K 的子数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/560.subarray-sum-equals-k)
* [0609. 在系统中查找重复文件](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/609.find-duplicate-file-in-system)
* [0611. 有效三角形的个数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/611.valid-triangle-number) 👍
* [0673. 最长递增子序列的个数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/673.number-of-longest-increasing-subsequence)
* [0686. 重复叠加字符串匹配](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/686.repeated-string-match)
* [0714. 买卖股票的最佳时机含手续费](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/714.best-time-to-buy-and-sell-stock-with-transaction-fee) 👍
* [0718. 最长重复子数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/718.maximum-length-of-repeated-subarray)
* [0735. 行星碰撞](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/735.asteroid-collision)
* [0754. 到达终点数字](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/754.reach-a-number) 👍
* [0785. 判断二分图](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/785.is-graph-bipartite) 👍
* [0790. 多米诺和托米诺平铺](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/790.domino-and-tromino-tiling) 👍
* [0799. 香槟塔](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/799.champagne-tower) 👍
* [0801. 使序列递增的最小交换次数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/801.minimum-swaps-to-make-sequences-increasing) 👍
* [0816. 模糊坐标](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/816.ambiguous-coordinates) 👍
* [0820. 单词的压缩编码](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/820.short-encoding-of-words)
* [0838. 推多米诺](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/838.push-dominoes)
* [0873. 最长的斐波那契子序列的长度](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/873.length-of-longest-fibonacci-subsequence) 👍
* [0875. 爱吃香蕉的珂珂](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/875.koko-eating-bananas)
* [0877. 石子游戏](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/877.stone-game)
* [0886. 可能的二分法](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/886.possible-bipartition)
* [0898. 子数组按位或操作](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/898.bitwise-ors-of-subarrays) 👍
* [0900. RLE 迭代器](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/900.rle-iterator) 👍
* [0911. 在线选举](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/911.online-election)
* [0912. 排序数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/912.sort-an-array)
* [0932. 漂亮数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/932.beautiful-array)
* [0935. 骑士拨号器](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/935.knight-dialer)
* [0947. 移除最多的同行或同列石头](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/947.most-stones-removed-with-same-row-or-column) 👍
* [0959. 由斜杠划分区域](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/959.regions-cut-by-slashes)
* [0978. 最长湍流子数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/978.longest-turbulent-subarray) 👍
* [0987. 二叉树的垂序遍历](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/987.vertical-order-traversal-of-a-binary-tree) 91
* [1004. 最大连续 1 的个数 III](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1004.max-consecutive-ones-iii)
* [1011. 在 D 天内送达包裹的能力](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1011.capacity-to-ship-packages-within-d-days)
* [1014. 最佳观光组合](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1014.best-sightseeing-pair) 👍
* [1015. 可被 K 整除的最小整数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1015.smallest-integer-divisible-by-k) 👍
* [1019. 链表中的下一个更大节点](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1019.next-greater-node-in-linked-list)
* [1020. 飞地的数量](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1020.number-of-enclaves)
* [1023. 驼峰式匹配](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1023.camelcase-matching)
* [1031. 两个非重叠子数组的最大和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1031.maximum-sum-of-two-non-overlapping-subarrays)
* [1043. 分隔数组以得到最大和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1043.partition-array-for-maximum-sum) 👍
* [1104. 二叉树寻路](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1104.path-in-zigzag-labelled-binary-tree) 👍
* [1129. 颜色交替的最短路径](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1129.shortest-path-with-alternating-colors)
* [1131.绝对值表达式的最大值](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1131.maximum-of-absolute-value-expression) 👍
* [1138. 字母板上的路径](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1138.alphabet-board-path)
* [1186. 删除一次得到子数组最大和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1186.maximum-subarray-sum-with-one-deletion) 👍
* [1218. 最长定差子序列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1218.longest-arithmetic-subsequence-of-given-difference) 👍
* [1227. 飞机座位分配概率](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1227.airplane-seat-assignment-probability) 👍
* [1261. 在受污染的二叉树中查找元素](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1261.find-elements-in-a-contaminated-binary-tree) 👍
* [1262. 可被三整除的最大和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1262.greatest-sum-divisible-by-three) 👍
* [1297. 子串的最大出现次数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1297.maximum-number-of-occurrences-of-a-substring) 👍
* [1310. 子数组异或查询](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1310.xor-queries-of-a-subarray)
* [1334. 阈值距离内邻居最少的城市](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1334.find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance) 👍
* [1371.每个元音包含偶数次的最长子字符串](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1371.find-the-longest-substring-containing-vowels-in-even-counts)
* [1381. 设计一个支持增量操作的栈](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1381.design-a-stack-with-increment-operation) 91 👍
* [1438. 绝对差不超过限制的最长连续子数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1438.longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit) 👍
* [1558. 得到目标数组的最少函数调用次数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1558.minimum-numbers-of-function-calls-to-make-target-array) 👍
* [1574. 删除最短的子数组使剩余数组有序](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1574.shortest-subarray-to-be-removed-to-make-array-sorted)
* [1631. 最小体力消耗路径](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1631.path-with-minimum-effort)
* [1658. 将 x 减到 0 的最小操作数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1658.minimum-operations-to-reduce-x-to-zero)
* [1697. 检查边长度限制的路径是否存在](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1697.checking-existence-of-edge-length-limited-paths)
* [1737. 满足三条件之一需改变的最少字符数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1737.change-minimum-characters-to-satisfy-one-of-three-conditions) 👍
* [1834. 单线程 CPU](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1834.single-threaded-cpu)
* [1899. 合并若干三元组以形成目标三元组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1899.merge-triplets-to-form-target-triplet) 👍
* [1904. 你完成的完整对局数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1904.the-number-of-full-rounds-you-have-played)
* [1906. 查询差绝对值的最小值](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1906.minimum-absolute-difference-queries)
* [1906. 查询差绝对值的最小值](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/1906.minimum-absolute-difference-queries)
* [2007. 从双倍数组中还原原数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/2007.find-original-array-from-doubled-array)
* [2008. 出租车的最大盈利](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/2008.maximum-earnings-from-taxi)
* [5935. 适合打劫银行的日子](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/5935.find-good-days-to-rob-the-bank)
* [5936. 引爆最多的炸弹](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/5936.detonate-the-maximum-bombs)
* [5965. 相同元素的间隔之和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/medium/5965.intervals-between-identical-elements)

### 困难难度题目合集

困难难度题目从类型上说多是：

* 图
* 设计题
* 游戏场景题目
* 中等题目的 follow up

从解法上来说，多是：

* 图算法
* 动态规划
* 二分法
* DFS & BFS
* 状态压缩
* 剪枝

从逻辑上说， 要么就是非常难想到，要么就是非常难写代码。 这里我总结了几个技巧：

1. 看题目的数据范围， 看能否暴力模拟
2. 暴力枚举所有可能的算法往上套，比如图的题目。
3. 总结和记忆解题模板，减少解题压力

以下是我列举的经典题目（带 91 字样的表示出自 **91 天学算法**活动）：

* [LCP 20. 快速公交](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/lcp20.mechtz)
* [LCP 21. 追逐游戏](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/lcp21.za25ha) 👍
* [Number Stream to Intervals](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/number-stream-to-intervals)
* [Triple-Inversion](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/triple-inversion) 91
* [Kth-Pair-Distance](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/kth-pair-distance) 91
* [Minimum-Light-Radius](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/minimum-light-radius) 91
* [Largest Equivalent Set of Pairs](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/largest-equivalent-set-of-pairs) 👍
* [Ticket-Order.md](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/ticket-order)
* [Connected-Road-to-Destination](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/connected-road-to-destination)
* [0004. 寻找两个正序数组的中位数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/4.median-of-two-sorted-arrays)
* [0023. 合并 K 个升序链表](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/23.merge-k-sorted-lists)
* [0025. K 个一组翻转链表](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/25.reverse-nodes-in-k-groups)
* [0030. 串联所有单词的子串](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/30.substring-with-concatenation-of-all-words)
* [0032. 最长有效括号](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/32.longest-valid-parentheses)
* [0042. 接雨水](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/42.trapping-rain-water)
* [0052. N 皇后 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/52.n-queens-ii)
* [0057. 插入区间](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/57.insert-interval)
* [0065. 有效数字](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/65.valid-number)
* [0084. 柱状图中最大的矩形](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/84.largest-rectangle-in-histogram)
* [0085. 最大矩形](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/85.maximal-rectangle)
* [0087. 扰乱字符串](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/87.scramble-string)
* [0124. 二叉树中的最大路径和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/124.binary-tree-maximum-path-sum)
* [0128. 最长连续序列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/128.longest-consecutive-sequence)
* [0132. 分割回文串 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/132.palindrome-partitioning-ii) 👍
* [0140. 单词拆分 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/140.word-break-ii)
* [0145. 二叉树的后序遍历](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/145.binary-tree-postorder-traversal)
* [0146. LRU 缓存机制](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/146.lru-cache)
* [0154. 寻找旋转排序数组中的最小值 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/154.find-minimum-in-rotated-sorted-array-ii)
* [0212. 单词搜索 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/212.word-search-ii)
* [0239. 滑动窗口最大值](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/239.sliding-window-maximum)
* [0295. 数据流的中位数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/295.find-median-from-data-stream)
* [0297. 二叉树的序列化与反序列化](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/297.serialize-and-deserialize-binary-tree) 91
* [0301. 删除无效的括号](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/301.remove-invalid-parentheses)
* [0312. 戳气球](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/312.burst-balloons)
* [330. 按要求补齐数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/330.patching-array)
* [0335. 路径交叉](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/335.self-crossing)
* [0460. LFU 缓存](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/460.lfu-cache)
* [0472. 连接词](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/472.concatenated-words)
* [0480. 滑动窗口中位数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/480.sliding-window-median)
* [0483. 最小好进制](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/483.smallest-good-base)
* [0488. 祖玛游戏](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/488.zuma-game)
* [0493. 翻转对](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/493.reverse-pairs)
* [0664. 奇怪的打印机](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/664.strange-printer)
* [0679. 24 点游戏](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/679.24-game)
* [0715. Range 模块](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/715.range-module)
* [0726. 原子的数量](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/726.number-of-atoms)
* [0768. 最多能完成排序的块 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/768.max-chunks-to-make-sorted-ii) 91
* [0805. 数组的均值分割](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/805.split-array-with-same-average)
* [0839. 相似字符串组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/839.similar-string-groups)
* [0887. 鸡蛋掉落](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/887.super-egg-drop)
* [0895. 最大频率栈](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/895.maximum-frequency-stack)
* [0975. 奇偶跳](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/975.odd-even-jump)
* [0995. K 连续位的最小翻转次数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/995.minimum-number-of-k-consecutive-bit-flips)
* [1032. 字符流](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1032.stream-of-characters)
* [1168. 水资源分配优化](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1168.optimize-water-distribution-in-a-village)
* [1178. 猜字谜](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1178.number-of-valid-words-for-each-puzzle)
* [1203. 项目管理](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1203.sort-items-by-groups-respecting-dependencies)
* [1255. 得分最高的单词集合](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1255.maximum-score-words-formed-by-letters)
* [1345. 跳跃游戏 IV](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1435.jump-game-iv)
* [1449. 数位成本和为目标值的最大数字](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1449.form-largest-integer-with-digits-that-add-up-to-target)
* [1494. 并行课程 II](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1494.parallel-courses-ii)
* [1521. 找到最接近目标值的函数值](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1521.find-a-value-of-a-mysterious-function-closest-to-target)
* [1526. 形成目标数组的子数组最少增加次数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1526.minimum-number-of-increments-on-subarrays-to-form-a-target-array)
* [1649. 通过指令创建有序数组](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1649.create-sorted-array-through-instructions)
* [1671. 得到山形数组的最少删除次数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1671.minimum-number-of-removals-to-make-mountain-array)
* [1707. 与数组中元素的最大异或值](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/5640.maximum-xor-with-an-element-from-array)
* [1713. 得到子序列的最少操作次数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1713.minimum-operations-to-make-a-subsequence)
* [1723. 完成所有工作的最短时间](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1723.find-minimum-time-to-finish-all-jobs)
* [1787. 使所有区间的异或结果为零](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1787.make-the-xor-of-all-segments-equal-to-zero)
* [1835. 所有数对按位与结果的异或和](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1835.find-xor-sum-of-all-pairs-bitwise-and)
* [1871. 跳跃游戏 VII](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1871.jump-game-vii) 👍
* [1872. 石子游戏 VIII](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1872.stone-game-viii)
* [1883. 准时抵达会议现场的最小跳过休息次数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/5775.minimum-skips-to-arrive-at-meeting-on-time)
* [1970. 你能穿过矩阵的最后一天](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/1970.last-day-where-you-can-still-cross)
* [2009. 使数组连续的最少操作数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/2009.minimum-number-of-operations-to-make-array-continuous)
* [2025. 分割数组的最多方案数](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/2025.maximum-number-of-ways-to-partition-an-array)
* [2030. 含特定字母的最小子序列](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/2030.smallest-k-length-subsequence-with-occurrences-of-a-letter)
* [2102. 序列顺序查询](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/2102.sequentially-ordinal-rank-tracker)
* [2209. 用地毯覆盖后的最少白色砖块](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/2209.minimum-white-tiles-after-covering-with-carpets)
* [2281.sum-of-total-strength-of-wizards](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/2281.sum-of-total-strength-of-wizards)
* [2306. 公司命名](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/hard/2306.naming-a-company) 枚举优化好题
* [5254. 卖木头块](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/broken-reference) 动态规划经典题
* [5999. 统计数组中好三元组数目](https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/broken-reference) 👍

## &#x20;anki 卡片

Anki 主要分为两个部分：一部分是关键点到题目的映射，另一部分是题目到思路，关键点，代码的映射。

全部卡片都在 [anki-card](https://github.com/azl397985856/leetcode/blob/master/assets/anki/leetcode.apkg)

使用方法：

anki - 文件 - 导入 - 下拉格式选择“打包的 anki 集合”，然后选中你下载好的文件，确定即可。

更多关于 anki 使用方法的请查看 [anki 官网](https://apps.ankiweb.net/)

目前已更新卡片一览（仅列举正面）：

* 二分法解决问题的关键点是什么，相关问题有哪些？
* 如何用栈的特点来简化操作， 涉及到的题目有哪些？
* 双指针问题的思路以及相关题目有哪些？
* 滑动窗口问题的思路以及相关题目有哪些？
* 回溯法解题的思路以及相关题目有哪些？
* 数论解决问题的关键点是什么，相关问题有哪些？
* 位运算解决问题的关键点是什么，相关问题有哪些？

> 已加入的题目有：#2 #3 #11

## 大事件

* 2019-07-10 ：[纪念项目 Star 突破 1W 的一个短文](https://github.com/azl397985856/leetcode/blob/master/thanksGiving.md)， 记录了项目的"兴起"之路，大家有兴趣可以看一下，如果对这个项目感兴趣，请**点击一下 Star**， 项目会**持续更新**，感谢大家的支持。
* 2019-10-08: [纪念 LeetCode 项目 Star 突破 2W](https://github.com/azl397985856/leetcode/blob/master/thanksGiving2.md)，并且 Github 搜索“LeetCode”，排名第一。
* 2020-04-12: [项目突破三万 Star](https://github.com/azl397985856/leetcode/blob/master/thanksGiving3.md)。
* 2020-04-14//leetcode-solution.cn/

![](https://p.ipic.vip/pq92y4.jpg)

* 2021-02-23: star 破四万

## 贡献

* 如果有想法和创意，请提 [issue](https://github.com/azl397985856/leetcode/issues) 或者进群提
* 如果想贡献增加题解或者翻译， 可以参考 [贡献指南](https://github.com/azl397985856/leetcode/blob/master/CONTRIBUTING.md)

  > 关于如何提交题解，我写了一份 [指南](https://github.com/azl397985856/leetcode/blob/master/templates/problems/1014.best-sightseeing-pair.md)
* 如果需要修改项目中图片，[这里](https://github.com/azl397985856/leetcode/blob/master/assets/drawio/README.md) 存放了项目中绘制图的源代码， 大家可以用 [draw.io](https://www.draw.io/) 打开进行编辑。

## 鸣谢

感谢为这个项目作出贡献的所有 [小伙伴](https://github.com/azl397985856/leetcode/graphs/contributors)

## License

[CC BY-NC-ND 4.0](https://github.com/azl397985856/leetcode/blob/master/LICENSE.txt)
