# 剑指 Offer 题解
# 前言
题目来自《何海涛. 剑指 Offer[M]. 电子工业出版社, 2012.》,刷题网站推荐:
# 数组与矩阵
# 栈队列堆
- 9. 用两个栈实现队列
- 30. 包含 min 函数的栈
- 31. 栈的压入、弹出序列
- 40. 最小的 K 个数
- 41.1 数据流中的中位数
- 41.2 字符流中第一个不重复的字符
- 59. 滑动窗口的最大值
# 双指针
# 链表
- 6. 从尾到头打印链表
- 18.1 在 O(1) 时间内删除链表节点
- 18.2 删除链表中重复的结点
- 22. 链表中倒数第 K 个结点
- 23. 链表中环的入口结点
- 24. 反转链表
- 25. 合并两个排序的链表
- 35. 复杂链表的复制
- 52. 两个链表的第一个公共结点
# 树
- 7. 重建二叉树
- 8. 二叉树的下一个结点
- 26. 树的子结构
- 27. 二叉树的镜像
- 28. 对称的二叉树
- 32.1 从上往下打印二叉树
- 32.2 把二叉树打印成多行
- 32.3 按之字形顺序打印二叉树
- 33. 二叉搜索树的后序遍历序列
- 34. 二叉树中和为某一值的路径
- 36. 二叉搜索树与双向链表
- 37. 序列化二叉树
- 54. 二叉查找树的第 K 个结点
- 55.1 二叉树的深度
- 55.2 平衡二叉树
- 68. 树中两个节点的最低公共祖先
# 贪心思想
# 二分查找
# 分治
# 搜索
# 排序
# 动态规划
- 10.1 斐波那契数列
- 10.2 矩形覆盖
- 10.3 跳台阶
- 10.4 变态跳台阶
- 42. 连续子数组的最大和
- 47. 礼物的最大价值
- 48. 最长不含重复字符的子字符串
- 49. 丑数
- 60. n 个骰子的点数
- 66. 构建乘积数组