剑指Offer
PengQ1
一枚基本功不扎实的不合格码农
展开
-
剑指Offer(六)序列化二叉树
题目:请实现两个函数,分别用来序列化和反序列化二叉树思路:这一题尤为头疼,可能是对于数据流,iostream这些东西不是很明白,所以暂且搁下吧,以下为何海涛在Github上的源码,但是这个与牛客的格式略有不同,因此可能过不了牛客OJ的编译。程序代码:void Serialize(const BinaryTreeNode* pRoot, ostream& stream){ if(p...原创 2018-07-09 15:02:03 · 185 阅读 · 0 评论 -
剑指Offer(四)数据流中的中位数
题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。思路:这个题理论上应该使用大顶堆和小顶堆会好一点。但是,现在出来了一个优先队列,现在最普遍的做法就是使用优先队列,在使用优先队列时,最重要的就是一定要让数据平衡。这里讲一下优先队列吧,库文件仍然使用#incl...原创 2018-07-06 06:59:55 · 196 阅读 · 0 评论 -
剑指Offer(三)滑动窗口的最大值
题目:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1...原创 2018-07-06 06:01:17 · 283 阅读 · 0 评论 -
剑指Offer(二)矩阵中的路径
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的...原创 2018-07-04 17:32:38 · 249 阅读 · 0 评论 -
剑指Offer(一)机器人的运动范围
心血来潮,看到很多很棒的题解博客,心想自己这几个月还没有好好地刷一遍剑指offer,每次都是从头刷,然而刷到三分之一处就坚持不下来了,希望这一次以此为契机,鼓励自己加油。前面的题目做过好多遍了,就从牛客网上的最后一题开始吧。 题目: 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和...原创 2018-07-04 17:32:29 · 246 阅读 · 0 评论 -
剑指Offer(十二)二叉树的镜像
题目:操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 思路:如果左结点...原创 2018-07-10 10:46:55 · 138 阅读 · 0 评论 -
剑指Offer(十一)二叉树的下一个结点
题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:根据中序遍历的特点,将这个问题划分成三种情况:1,如果该结点有右子树,则返回该结点右子树的最左结点。2,如果无右子树且该结点位于父节点的左侧,则返回父节点3,如果无右子树且该结点位于父节点的右侧,则依次向上寻找,直至找到以其父节点作为左结点的结点,返回该...原创 2018-07-10 10:34:39 · 142 阅读 · 0 评论 -
剑指Offer(十)对称的二叉树
题目:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:原创 2018-07-10 10:34:28 · 114 阅读 · 0 评论 -
剑指Offer(九)二叉树打印系列-之字形打印二叉树
同样我们需要找到合适的数据容器来使得打印的顺序可以较好地实现。原创 2018-07-09 18:25:08 · 133 阅读 · 0 评论 -
剑指Offer(八)二叉树打印系列-按层打印二叉树
同样地,使用队列依然可以解决问题,而且,我们还需要一个变量来指示是否已经打印完一层。原创 2018-07-09 18:03:50 · 261 阅读 · 0 评论 -
剑指Offer(七)二叉树打印系列-从上往下打印二叉树
这次开始讲不按照牛网上编排的顺序,因为三个二叉树打印的题目,它们的类型很相近,所以就放在了一起解析。原创 2018-07-09 17:15:20 · 143 阅读 · 0 评论 -
剑指Offer(五)二叉搜索树的第k个结点
题目:给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。思路:原创 2018-07-06 11:00:55 · 255 阅读 · 0 评论