1. 二分法 5
1.1. 什么是二分查找 5
1.2. 如何识别二分法 5
1.3. 二分法模板 6
1.3.1. 模板一 6
1.3.1.1. 模板代码 6
1.3.1.2. 关键属性 7
1.3.1.3. 语法说明 7
1.3.1.4. Lc69:x的平方根 8
1.3.1.5. Lc374:猜数大小 9
1.3.1.6. Lc33:搜索旋转数组 11
1.3.2. 模板二 13
1.3.2.1. 模板代码 13
1.3.2.2. 关键属性 14
1.3.2.3. 语法说明 14
1.3.2.4. Lc278:第一个错误版本 14
1.3.2.5. Lc162:寻找峰值 16
1.3.2.6. Lc153:寻找旋转排序数组最小值 19
1.3.2.7. Lc154:寻找旋转排序数组最小值II 20
1.3.3. 模板三 22
1.3.3.1. 模板代码 22
1.3.3.2. 关键属性 23
1.3.3.3. 语法说明 23
1.3.3.4. LC-34:在排序数组中查找元素的第一个和最后一个 23
1.3.3.5. LC-658:找到K个最接近的元素 25
1.3.4. 小结 28
1.4. LeetCode中二分查找题目 29
2. 双指针 30
2.1. 快慢指针 31
2.1.1. 什么是快慢指针 31
2.1.2. 快慢指针模板 31
2.1.3. 快慢指针相关题目 32
2.1.3.1. LC-141:链表是否有环 32
2.1.3.2. LC-142:环形链表入口 34
2.1.3.3. LC-876:链表的中间节点 37
2.1.3.4. LC-287:寻找重复数 40
2.2. 滑动窗口 43
2.2.1. 什么是滑动窗口 43
2.1.4. 常见题型 44
2.1.5. 注意事项 45
2.1.6. 滑动窗口模板 45
2.1.7. 滑动窗口相关题目 46
2.1.7.1. LC-3:无重复字符的最长子串 47
2.1.7.2. LC-76:最小覆盖子串 49
2.1.7.3. LC-209:长度最小的子数组 54
2.1.7.4. LC-239:滑动窗口最大值 57
2.1.7.5. LC-395:至少有K个重复字符的最长子串 60
2.1.7.6. LC-567:字符串排列 62
2.1.7.7. LC-904:水果成篮 64
2.1.7.8. LC-424:替换后的最长重复字符 66
2.1.7.9. LC-713:乘积小于K的子数组 67
2.1.7.10. LC-992:K个不同整数的子数组 70
2.3. 左右指针 73
2.3.1. 模板 73
2.3.2. 相关题目 73
2.3.2.1. LC-76:删除倒数第N个节点 74
2.3.2.2. LC-61:旋转链表 76
2.3.2.3. LC-80:删除有序数组中的重复项 79
2.3.2.4. LC-86:分割链表 80
2.3.2.5. LC-438:找到字符串中所有字母的异位词 82
3. 模板 85
2.3.2.6. LC-76:删除倒数第N个节点 85
1