
面试题
Hyacinth_Dy
这个作者很懒,什么都没留下…
展开
-
经典面试题之逆序打印单链表
题目:输入一个链表的头节点,从头到尾反过来打印每个节点的值。思路:要打印单链表就必须遍历单链表,遍历的顺序是从头到尾,而打印的顺序是从尾到头,就是说最先遍历的节点最后打印,最后遍历的节点最先打印,就是所谓的后进先出,那么我们就可以用栈实现这种顺序,从头到尾遍历链表,每遍历一个节点将它保存到栈中,知道整个链表遍历完成,在从栈中一次取出节点并打印对应的值。实现代码void ResverPrintL原创 2017-04-29 14:05:03 · 3234 阅读 · 0 评论 -
二叉树的层序遍历
题目:实现一颗二叉树的层序遍历,树的结点定义如下原创 2017-07-22 08:59:26 · 493 阅读 · 0 评论 -
元素出栈、入栈顺序的合法性
题目:元素出栈、入栈顺序的合法性。如:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1),则合法。入栈的序列(1,2,3,4,5),出栈序列为(4,5,2,3,1),则不合法。原创 2017-07-22 09:08:13 · 477 阅读 · 0 评论 -
shell脚本实现希尔(shell)排序
采用shell脚本实现希尔排序原创 2017-07-31 19:28:22 · 809 阅读 · 0 评论 -
二叉树的镜像
题目:完成一个函数,输入一个二叉树,该函数输出他 结点定义如下typedef struct TreeNode{ TreeNode(char data) :_pleft(NULL) , _pright(NULL) , _data(data) {} TreeNode *_pleft; TreeNode *_pright; char _原创 2017-07-25 18:54:57 · 272 阅读 · 0 评论 -
剑指offer面试题-二叉树的前序中序后序遍历
题目 传入一个树的根节点,分别采用非递归实现树的前序,中序,后序遍历。节点原创 2017-07-26 20:45:12 · 468 阅读 · 0 评论 -
面试题:判断一个节点是否在一棵二叉树中
判断一个节点是否在一棵二叉树中原创 2017-07-27 19:02:42 · 2785 阅读 · 1 评论 -
判断一棵树是不是完全二叉树
完全二叉树:前n-1层结点都是满的,第n层不满的话,只能是缺右孩子,左边是满的。原创 2017-07-28 20:53:01 · 760 阅读 · 0 评论 -
剑指offer-树中两个节点的最低公共祖先
对于这个问题不同的条件可以有不同的解法树是二叉树且是二叉搜索树。原创 2017-07-28 21:29:18 · 348 阅读 · 0 评论 -
CVTE水果问题
题目:本公司现在要给公司员工发波福利,在员工工作时间会提供大量的水果供员工补充营养。由于水果种类比较多,但是却又不知道哪种水果比较受欢迎,然后公司就让每个员工报告了自己最爱吃的k种水果,并且告知已经将所有员工喜欢吃的水果存储于一个数组中。然后让我们统计出所有水果出现的次数,并且求出大家最喜欢吃的前k种水果。 要求:打印出最喜欢的水果,并且效率尽可能的高。 提示:尽量使用STL的容器和算法,这样能原创 2017-08-06 21:30:51 · 416 阅读 · 0 评论 -
寻找无序数组的中位数
题目:求一个无序数组的中位数。 如:{2,5,4,9,3,6,8,7,1}的中位数为5,{2,5,4,9,3,6,8,7,1,0}的中位数为4和5。 要求:不能使用排序,时间复杂度尽可能高提示:考虑堆或者快排思想解决。原创 2017-08-06 22:13:40 · 1879 阅读 · 0 评论 -
求先递增在递减数组中的最大值
题目:一个数组先从小到大递增在从大到小递减,找出数组的最大值。原创 2017-08-30 15:00:15 · 4046 阅读 · 0 评论 -
给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。
题目:给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。原创 2017-07-22 08:51:32 · 704 阅读 · 0 评论 -
面试题-前序中序序列重建二叉树
题目:根据某二叉树的前序中序序列重建二叉树,假设前序中序序列中不包含重复的数字。树的结点定义如下。原创 2017-07-30 23:06:02 · 400 阅读 · 0 评论 -
剑指offer面试题-判断链表是否带环并求环的入口点和环的长度
题目:输入一个链表的头节点,判断链表是否带环,若带环,求环的入口点,和环的长度。判断链表是否带环原创 2017-07-17 21:02:49 · 2285 阅读 · 1 评论 -
根据二叉树的前序中序遍历序列重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树,假设输入的前序中序遍历结果中不含重复的数字,例如输入前序遍历序列“12473568”,和中序遍历序列“47215386”重建二叉树并输出他的头节点。思路解析 上述序列还原的二叉树如下图所示原创 2017-05-01 15:09:36 · 420 阅读 · 0 评论 -
两个栈模拟实现一个队列
题目:用两个栈实现一个队列,分别完成在队列尾部插入节点以及在队列头部删除节点的功能。思路解析:我们通过一个具体的例子来寻找解决这个问题的办法,首先插入元素1我们不妨插入到stack1中,这时候stack2中为空,在压入2,3两个元素。此时栈顶元素是3,stack2仍然是空,队列的特性是先进先出,删除操作删除的元素应该是1,所以我们将stack1的元素全部压入到stack2中此时stack2栈顶的元原创 2017-05-03 13:20:28 · 986 阅读 · 0 评论 -
旋转数组中的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾称之为数组的旋转,输入一个递增排序的数组的旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2},为数组{1,2,3,4,5}的一个旋转,该数组的最小值为1。思路解析:我们发现旋转之后的数组可以划分为两个排序的子数组。且前面子数组的元素都大于后面子数组的元素,并且最小的元素是两个数组的分界线,因此可以采用二分查找法进行查找。思路图解 算法分析原创 2017-05-04 14:04:22 · 329 阅读 · 0 评论 -
数值的整数次方
题目:实现函数double Power(double base, int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数问题。原创 2017-05-06 14:58:00 · 368 阅读 · 0 评论 -
打印1到最大的n位数
题目:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印1,2,3…..一直到最大的数999。原创 2017-05-07 15:00:36 · 294 阅读 · 0 评论 -
剑指offer面试题-合并两个有序链表
题目: 输入两个递增有序的链表,合并这两个链表并使新链表中的结点仍然是有序的,具体示例如下图,链表结点定义如下:struct ListNoe{ ListNoe() :_next(NULL) , _data(0) {} ListNoe *_next; int _data;}原创 2017-07-15 13:27:57 · 424 阅读 · 0 评论 -
逆置反转单链表
定义一个函数,输入一个链表的头节点,反转链表反转链表并输出反转后的链表头节点。原创 2017-07-16 21:23:49 · 643 阅读 · 0 评论 -
求链表中倒数第K个节点
题目:输入一个链表输出链表中的第K个节点,(计数从1开始)。原创 2017-07-16 21:32:29 · 592 阅读 · 0 评论 -
腾讯2017秋招笔试编程题
假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index为0,aa的Index为1,aaa的Index为2,以此类推。 编写一个函数,输入是任意一个编原创 2017-07-09 10:20:42 · 580 阅读 · 0 评论 -
在O(1)时间删除链表结点
题目 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间内删除该结点,链表结点与函数定义如下。struct ListNode{ int _data; struct ListNode* _next;};void DeleteNode(ListNode **pHead,ListNode *pDelNode)思路分析:单链表中删除结点pDel的方法一般是遍历链表找到删除原创 2017-07-09 16:03:13 · 325 阅读 · 0 评论 -
剑指offer面试题-二叉搜索树转换成一个排序的双向链表
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表,要求不能创建任何新的结点,只能调整树中节点的指向,树的结点定义如下:原创 2017-07-30 15:47:52 · 664 阅读 · 0 评论 -
2017滴滴秋招笔试编程题-求连续子数组的最大和
题目:输入一个整型数组,数组里有正数也有负数,数组中的一个或者连续多个整数组成一个子数组,求所有子数组的和的最大值,要求时间复杂度为O(n)。 例如:输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},输出连续子数组的最大和是8。思路分析:我们可能会想列出数组所有的子数组,并求出他们的和,但是对于一个长度为n的数组,总共有 n(n+1)/2个子数组原创 2017-08-27 18:48:21 · 3478 阅读 · 0 评论