- 剑指Offer-01.二维数组中的查找二维数组中的查找
知识点:二分法、曼哈顿曼哈顿问题变形
- 剑指Offer-02.替换空格替换空格
知识点:数组和字符串从后向前操作
- 剑指Offer-03.从尾到头打印链表从尾到头打印链表
栈的使用
- 剑指Offer-04.重建二叉树重建二叉树
递归
- 剑指Offer-05.用两个栈实现队列用两个栈实现队列
栈与队列
- 剑指Offer-06.旋转数组的最小数字旋转数组的最小数字
复杂度O(n)、 可以更少O(logn) 二分法
- 剑指Offer-07.斐波那契数列剑指Offer-07.斐波那契数列
递归、循环
- 剑指Offer-08.跳台阶跳台阶
递归、循环
- 剑指Offer-09.变态跳台阶变态跳台阶
递归、循环
- 剑指Offer-10.矩形覆盖矩形覆盖
递归、循环、斐波那契数的应用
- 剑指Offer-11.二进制中1的个数二进制中1的个数
位操作 无符号位右移 >>>= 、 位右移 >>= 、 位左移 <<=
- 剑指Offer-12.数值的整数次方数值的整数次方
位操作 移位相乘
- 剑指Offer-13.整数组顺序使奇数位于偶数前面整数组顺序使奇数位于偶数前面
双指针、用空间换时间
- 剑指Offer-14.链表中倒数第k个结点链表中倒数第k个结点
双指针
- 剑指Offer-15.反转链表剑指Offer-15.反转链表
三指针
- 剑指Offer-16.合并两个排序链表合并两个排序链表
指针的应用
- 剑指Offer-17.树的子结构树的子结构
递归的使用
- 剑指Offer-18.二叉树的镜像二叉树的镜像
递归的使用
- 剑指Offer-19.顺时针打印矩阵顺时针打印矩阵
标志矩阵
- 剑指Offer-20.创造min函数的栈剑指Offer-20.创造min函数的栈
双栈
- 剑指Offer-21.栈的压入,栈的压栈的压入,栈的压出
利用栈的性质,每次压入后,都进行压出检测
- 剑指Offer-22.从上往下打印二叉树从上往下打印二叉树
使用队列来实现广度遍历,
Queue queue = new ArrayList<String>();
- 剑指Offer-23.二叉搜索树的后序遍历序列二叉搜索树的后序遍历序列
递归和栈的两种方法。
- 剑指Offer-24.复杂链表的复制复杂链表的复制
使用三步法:插入节点的方法解决。