![](https://img-blog.csdnimg.cn/20200206105256733.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
剑指Offer
剑指Offer题解
Codeapes
这个作者很懒,什么都没留下…
展开
-
剑指Offer :从上到下打印二叉树
文章目录1. 题目 11.1 示例1.2 解题思路1.3 代码实现2. 题目 22.1 示例2.2 解题思路2.3 代码实现3. 题目 33.1 示例3.2 解题思路3.3 代码实现 1. 题目 1 不分行从上到下打印二叉树。从上到下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。 1.1 示例 输入: 8 / \ 6 10 / \ / \ 5...原创 2020-02-10 12:24:09 · 303 阅读 · 0 评论 -
剑指Offer :树的子结构
文章目录1.题目2.示例3.解题思路4.代码实现 1.题目 输入两棵二叉树 A 和 B,判断 B 是不是 A 的子结构。 2.示例 树 A 3 / \ 4 5 / \ 1 2 树B 4 / \ 1 2 上面 B 是 A 的子结构,故返回 true。 3.解题思路 1.在树 A 中找到和树 B 的根结点的值一样的结点 Root。 2.接着...原创 2020-02-07 22:32:26 · 155 阅读 · 0 评论 -
剑指Offer :调整数组顺序使奇数位于偶数前面
文章目录1.题目2.解法探析2.1 解法 12.2 解法 22.3 解法 3 1.题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 2.解法探析 2.1 解法 1 若在不考虑时间复杂度的情况下,可以从头扫描这个数组,每碰到一个偶数,取出该数字,并把该数字后面的所有数字往前移一位。移完之后在数组的末尾有一个空位,再把该偶数放入...原创 2020-02-03 21:28:43 · 192 阅读 · 0 评论 -
剑指Offer :删除链表的结点
文章目录1.题目 11.1 题目分析1.2 代码实现2.题目 22.1 题目分析2.2 代码实现 1.题目 1 在 O(1)时间内删除链表结点。 给定单向链表的头指针和一个结点指针,定义一个函数在 O(1)时间内删除该结点。 1.1 题目分析 在单链表中删除一个结点,常规做法是从链表的头结点开始,顺序遍历查找要删除的结点,并在链表中删除该结点,但这种方式的时间复杂度为 O(n),与题目要求不符。 ...原创 2020-02-03 21:18:48 · 201 阅读 · 0 评论 -
剑指Offer :打印从 1 到最大的 n 位数
文章目录1.题目2.解法探析2.1 解法 12.2 解法 22.2.1 Print1ToMaxOfNDigits函数2.2.2 Increment函数2.2.3 PrintNumber函数2.3 解法 32.3.1 Print1ToMaxOfNDigits函数2.3.2 Print1ToMaxOfNDigitsRecursively函数 1.题目 输入数字 n,按顺序打印出从 1 到最大的 n 位...原创 2020-02-02 12:15:04 · 323 阅读 · 2 评论 -
剑指Offer-二进制中的1的个数
文章目录1.题目2.必备知识-原码、反码与补码2.1 原码2.2 反码2.3 补码2.4 总结3.解法探析3.1 解法13.2 解法23.3 解法3 1.题目 输入一个整数,输出该数二进制表示中1的个数。 2.必备知识-原码、反码与补码 2.1 原码 将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示)。 如果是8位二进制,则: +1 的原码为:0000 0...原创 2020-01-29 10:59:42 · 227 阅读 · 0 评论 -
剑指Offer-快速排序
剑指Offer上的快速排序的Partition函数与我在数据结构书上学到的不一样,因此就想要探索下这两种不同的处理方式。 文章目录1.基本思想2.剑指Offer上的Partition实现3.一般教材上的Partition实现4.总结 1.基本思想 快速排序的基本思想是基于分治法。在待排序表L[1…n]中任取一个元素pivot作为基准,通过一趟排序将待排序表划分为独立的两部分L[1…k-1]和L[...原创 2019-12-14 20:16:47 · 629 阅读 · 2 评论