♦ 链表专题
•
♦ 双指针专题
•
♦ 字符串专题
•
♦ 数学类专题
•
♦ 动态规划专题
•
♦ 二分类查找专题
•
♦ 哈希表专题
•
♦ 回溯专题
•
♦ 位运算专题
•
- 电子书阅览:剑指offer.PDF
- 配套源码:《剑指Offer》第二版源代码
- 刷题平台:牛客平台
♦ 链表(8道)
• 面试题 6 :从尾到头打印链表
• 面试题 18:删除链表中重复的结点
• 面试题 22:链表中倒数第k个结点
• 面试题 23:链表中环的入口结点
• 面试题 24:反转链表
• 面试题 25:合并两个排序的链表
• 面试题 35:复杂链表的复制
• 面试题 52:两个链表的第一个公共结点
♦ 二叉树(12道)
• 面试题 7 :重建二叉树
• 面试题 8 :树的子结构
• 面试题 27:二叉树的镜像
• 面试题 32:从上往下打印二叉树
• 面试题 34:二叉树中和为某一值的路径
• 面试题 55:二叉树的深度
• 面试题 :平衡二叉树
• 面试题 :二叉树的下一个结点
• 面试题 27:对称的二叉树
• 面试题 :按之字顺序打印二叉树
• 面试题 :把二叉树打印成多行
• 面试题 37:序列化二叉树
♦ 二叉搜索树(3道)
• 面试题 :二叉搜索树的后序遍历序列
• 面试题 :二叉搜索树与双向链表
• 面试题 :二叉搜索树的第k个结点
♦ 数组(11道)
• 面试题 :二维数组中的查找
• 面试题 :旋转数组的最小数字
• 面试题 :调整数组顺序使奇数位于偶数前面
• 面试题 :数组中出现次数超过一半的数字
• 面试题 :连续子数组的最大和
• 面试题 :把数组排成最小的数
• 面试题 :数组中的逆序对
• 面试题 :数字在排序数组中出现的次数
• 面试题 :数组中只出现一次的数字
• 面试题 3 :数组中重复的数字
• 面试题 :构建乘积数组
♦ 字符串(8道)
• 面试题 5 :替换空格
• 面试题 :字符串的排列
• 面试题 50:第一个只出现一次的字符
• 面试题 :左旋转字符串
• 面试题 :翻转单词顺序序列
• 面试题 :把字符串转换成整数
• 面试题 :正则表达式匹配
• 面试题 :表示数值的字符串
♦ 栈(3道)
• 面试题 :用两个栈实现队列
• 面试题 :包含min函数的栈
• 面试题 :栈的压入、弹出序列
♦ 递归(4道)
• 面试题 :裴波那契数列
• 面试题 :跳台阶
• 面试题 :变态跳台阶
• 面试题 :矩形覆盖
♦ 回溯法(2道)
• 面试题 :矩阵中的路径
• 面试题 :机器人的运动范围
♦ 其他(15道)
• 面试题 15:二进制中1的个数
• 面试题 :数值的整数次方
• 面试题 :顺时针打印矩阵
• 面试题 :最小的K个数
• 面试题 :整数中1出现的次数(从1到n整数中1出现的次数)
• 面试题 49:丑数
• 面试题 :和为S的连续正数序列
• 面试题 57:和为S的两个数字
• 面试题 61:扑克牌顺子
• 面试题 :孩子们的游戏(圆圈中最后剩下的数)
• 面试题 64:求1+2+3+…+n
• 面试题 65:不用加减乘除的加法
• 面试题 :字符流中第一个不重复的字符
• 面试题 :数据流中的中位数
• 面试题 :滑动窗口的最大值