
剑指offer
wfs1874
代码的世界应该是快乐的。
展开
-
剑指offer 面试题: 求二叉树的镜像(递归、循环、及测试用例)
编程是为了让程序变成自己喜欢的模样!坚持总结经验才是王道代码的样子决定了你的能力!题目:完成一个函数,输入一颗二叉树、该函数输出它的镜像。二叉树定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_left; BinaryTreeNode* m_right;}...原创 2018-11-22 14:57:08 · 268 阅读 · 0 评论 -
剑指offer 28: 对称的二叉树(递归实现)
题目实现一个函数,用来判断一棵二叉树是不是对称的。如果一颗二叉树和它的镜像一样那么它对称。分析 存在三种遍历算法,前序遍历,中序遍历,后序遍历。我们可以针对前序遍历定义一种对称的遍历算法。即先遍历父节点,再遍历右结点,最后遍历左结点。以上面的为例,先序遍历为:8 , 6, 5, 7, 6, 7, 5我们定义的遍历方式遍历为: 8 ,6,5, 7, 6 , 7, 5我们注...原创 2018-11-22 15:37:58 · 127 阅读 · 0 评论 -
剑指Offer(29):顺时针打印矩阵
题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每个数字,例如,如果输入如下矩阵:则依次打印出数组:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。思路将结果存放在vector 数组中,从左到右,再从上到下,再从右到左,最后从下到上遍历。思考:遍历停止的标志是什么边界必须非常清晰的控制好! 考察边界控制能力!代码:vec...原创 2018-11-24 15:23:19 · 163 阅读 · 0 评论 -
【剑指 offer】 51. 数组中重复的数字
题目:在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。 请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,10,2,5,3},那么对对应的重复数字是 2 或 3.解题 方法:排序:将数组排序,然后扫描排序后的数组即可。时间复杂度: O(nlogn), 空间复杂度: O...原创 2019-06-14 20:09:37 · 196 阅读 · 0 评论 -
【剑指offer】二维数组中查找
题目描述给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。思路:暴力时间复杂度 O(mn)利用二维数组由上到下,由左到右递增的规律,那么选取左下角或者右上角的元素a[ i ] [ j ] 与 target进行比较,当target大于元素 a [ i] [j ],那么 target 必定在元素 a 所在行的右边, 即 j...原创 2019-06-14 20:32:47 · 206 阅读 · 0 评论 -
【剑指offer】数据流中的中位数(C++大小堆)
题目描述:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。思路第一步想到的是排序,但是插入时间复杂度为O(n),得到中位数的时间复杂度为O(1)。也可...原创 2019-06-22 16:40:47 · 568 阅读 · 0 评论