
笔试面试
文章平均质量分 79
mi_rencontre
这个作者很懒,什么都没留下…
展开
-
二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 方法:首先选取数组中右上角的数字。如果该数字等于要查找的数字,则停止查找;如果该数字大于要查找的数字,则剔除这个数字所在的列;如果该数字小于要查找的数字,则剔除这个数字所在的行。也就是说,如果要查找的数字不在数组的右原创 2016-03-11 14:47:52 · 387 阅读 · 0 评论 -
栈与队列相关笔试题
1.用两个栈实现队列 分析:队列的特点是“先进先出”,而栈的特点是“后进先出”,入队列时让所有的元素进到stack1中,出队列时先判断stack2是否为空,不为空直接pop即可,若为空,将stack1中所有的元素“倒入”stack2中,这样就用两个栈实现了队列。 实现代码: class Solution { public: void push(int node) {原创 2016-05-10 15:07:55 · 1641 阅读 · 0 评论 -
二叉树相关笔试题(一)
1.根据二叉树的前序遍历和中序遍历的结果重建二叉树 分析:二叉树的前序遍历顺序是根->左->右,中序遍历顺序是左->根->右,由此可以看出在前序遍历中的第一个数字为二叉树的根节点,接着扫描中序遍历的结果就可以得到根结点的位置,在根节点左边的数为左子树结点的值,位于根节点右边的为右子树结点的值,接下来可以用递归的方法分别构建左右子树。原创 2016-05-11 11:41:37 · 629 阅读 · 0 评论 -
替换空格
题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入"We are happy."则输出"We%20are%20happy."。 分析: 方法一:创建新的字符串并分配足够多的内存,在新的字符串上进行替换。 方法二:从头到尾扫描字符串,每碰到一个空格的时候进行替换,并把空格后面的所有字符后移两个字节。 方法二的实现代码如下: void Replace(char st原创 2016-04-30 11:24:10 · 328 阅读 · 0 评论 -
二叉树相关笔试题(二)
1.二叉树中和为某一值的路径 题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整树的所有路径。从树的根节点开始往下直到叶节点所经的结点形成一条路径。 分析:由于路径是从根节点出发的,所以选择前序遍历,当访问到一个结点时,把该结点添加到路径,并累加该结点的值,如果该结点为叶子结点并且路径中结点值的和刚好等于输入的整数,则该路径符合要求,如果当前结点不是叶子结点,则继续访问它的子节点原创 2016-05-13 11:59:14 · 1862 阅读 · 0 评论 -
链表相关笔试题(一)
1.从尾到头打印单链表 方法一:可以用栈实现,遍历链表,每经过一个结点,把该结点放入栈中,当遍历完整个链表后,从栈顶开始逐个输出结点的值,此时输出的结点的顺序就反转过来了 实现代码:原创 2016-05-01 12:55:25 · 446 阅读 · 0 评论 -
二叉树相关笔试题(三)
1.按之字形顺序打印二叉树 题目:请实现一个函数,按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二行按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,以此类推。 分析:可以用两个栈,在打印某层结点时,把下一层的子结点保存到相应的栈里。如果当前层是奇数层,则先保存左子节点再保存右子结点到第一个栈中,如果是偶数层,则先保存右子结点再保存左子节点到第二个栈中。原创 2016-05-22 11:35:12 · 551 阅读 · 0 评论 -
旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。 方法一:从头到尾遍历数组,就可以找到,时间复杂度为O(n)。 实现代码: int minNumberInRotateArray(vector rotat原创 2016-06-12 11:10:15 · 538 阅读 · 0 评论 -
链表相关笔试题(二)
1.复杂链表的复制 题目:请实现函数,复制一个复杂链表。在复杂链表中,每个结点除了有一个next指针指向下一个结点外,还有一个pSibling指向链表中的任意结点或者NULL。 方法一:先复制原始链表上的每一个结点,并用next链接起来,然后设置每个节点的pSibling指针。假设原始链表中的某个结点N的pSibling指向结点S,由于S的位置在链表中可能在N的前面也可能在N的后面,所以要定位原创 2016-05-07 12:45:18 · 714 阅读 · 0 评论