笔试与面试
文章平均质量分 65
WalkingInTheWind
这个作者很懒,什么都没留下…
展开
-
轻松搞定面试中的链表题目
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7393134链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位。本文对链原创 2012-04-21 15:45:25 · 60907 阅读 · 45 评论 -
【谷歌面试题】有序输出两棵二叉查找树中的元素
题目:给出两棵二叉查找树,有序输出所有元素,时间复杂度O(n),空间复杂度O(h),h为树的高度此题就是把两棵二叉查找树的中序遍历过程结合在一起。struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};v原创 2013-05-28 11:32:18 · 4236 阅读 · 1 评论 -
【谷歌面试题】求数组中两个元素的最小距离
一个数组,含有重复元素,给出两个数num1和num2,求这两个数字在数组中出现的位置的最小距离O(n)时间复杂度,O(1)空间复杂度int minDistance(int A[], int size, int num1, int num2){ int num1_last_pos = -1; int num2_last_pos = -1; int min_dist = INT_MAX原创 2013-05-28 16:04:03 · 6211 阅读 · 0 评论 -
【谷歌面试题】给出一个数组A,找出一对 (i, j)使得A[i] <= A[j] (i < j)并且j-i最大
题目:给出一个数组A,找出一对 (i, j)使得A[i] 最直接的想法就是对于每一个 i 从数组最尾端开始向前找到第一个大于等于 A[i] 的位置 j ,时间复杂度O(n^2)。pair find(const vector &A){ int n = A.size(); if(n == 0) throw new invalid_argument("Array's size ca原创 2013-05-28 10:20:27 · 7223 阅读 · 4 评论 -
复杂链表的复制
本文参考:http://zhedahht.blog.163.com/blog/static/254111742010819104710337/题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下:struct ComplexNode{ int m_nValue;原创 2011-10-31 15:07:39 · 2288 阅读 · 0 评论 -
二分查找,你真的掌握了吗?
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/8937978二分查找,最基本的算法之一,也是面试中常被考察的重点,因为基本的算法最能反映出一个人的基础是否扎实。本文对二分查找相关题目做一个总结。题目列表:1. 给定一个有序(非降序)数组A,求任意一个i使得A[i]等于target,不存原创 2013-05-21 19:58:29 · 18288 阅读 · 13 评论 -
轻松搞定面试中的二叉树题目
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关原创 2012-08-29 21:24:37 · 261889 阅读 · 73 评论 -
【微软面试题】在二叉搜索树中找最小的大于某个key值的节点
在二叉搜索树中找最小的大于某个key值的节点如 8 / \ 6 12 / / \2 11 14key = 8 返回11key = 1 返回2key = 16 返回NULLstruct TreeNode{ int val; TreeNode原创 2013-05-16 23:29:40 · 6565 阅读 · 0 评论 -
数组中只出现一次的数字
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/8138766题目一:一个整型数组里除了1个数字只出现一次之外,其他的数字都出现了两次。请写出程序找出这个只出现1次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。这个很简单,通过异或就可以除掉相同的数字,到最后只剩下一个只出现一次原创 2012-11-01 22:53:36 · 3072 阅读 · 0 评论 -
2014年计算机求职总结--准备篇
找工作是一个长期准备的过程,突击是没什么效果的。准备时间越长,准备就越充分,就越容易拿到好的offer。我基本上从研究生一入学就一直在准备找工作的东西,看书、研究研究笔试题、面试题、在线编程训练、参加实习招聘等等。当然,其实主要还是研二开始准备的,也算不上多认真,反正一天一天的积累吧。这里我把我准备的内容向大家分享一下。一、推荐书籍计算机的好书挺多的,我买了也有四五十本,也花了不少钱,但是原创 2013-10-24 16:44:48 · 41074 阅读 · 71 评论 -
2014年计算机求职总结--面试篇
又一年实习招聘陆续开始了,这里分享一下我在2013年实习招聘和秋季招聘中的一些面试经历,希望能对找工作的同学有所帮助。2013年面试过的公司有蘑菇街、网易游戏、阿里巴巴、腾讯、百度、大众点评、人人网、雅虎(北研)、WAP。一、蘑菇街一面(实习)现场面试。先问了一下实习经历以及研究生期间做的项目,面试前一定要好好回顾一下这些。因为我申请的是搜索引擎和存储方向,就问了我对大数据原创 2014-03-30 15:46:56 · 10515 阅读 · 7 评论 -
文件中随机读取行问题
1. 有一个文件,如何在不知道有多少行的情况下读取该文件,从中随机选择并输出一行当我们读取第 i (i > 0) 行时,以 1 / i 的概率选择第 i 行,并替换掉原来选的行。即总选择第一行,并以概率 1 / 2 选择第 2 行,以概率 1 / 3 选择第3 行,依次类推。到文件结束时,每个行被选中的概率都相等。#include #include #include原创 2013-05-24 20:47:49 · 5560 阅读 · 1 评论 -
经典面试题:链表的相交与环问题
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/70740221. 给出两个单向链表的头指针pHead1和pHead2,判断这两个链表是否相交。假设两个链表均不带环。示意图如下:如果两个链表相交于某一节点,那么在这个相交节点之后的所有节点都是两个链表所共有的。也就是说,如果两个原创 2011-12-15 14:35:59 · 5412 阅读 · 5 评论 -
和为n连续正数序列
题目:输入一个正数n,输出所有和为n连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。我们从头开始找,初始化时连续序列是1-2,同时记录sum=3,如果连续序列和小于n,那么就把连续序列区间的终点向后移,更新sum;如果连续序列的和大于n,那么就把连续序列区间的起点向后移,更新sum;如原创 2011-11-16 10:16:57 · 2511 阅读 · 2 评论 -
n个骰子的点数
题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。用PN,S来表示N个骰子,顶面数字之和为S出现的概率,则:PN,S=aN,S/6^N其中aN,S为N个骰子顶面数之和为S的状态的数量,6^N为总的状态数量,因为每个骰子有6种状态,N个骰子组成的状态数就是6^N。下面给出求ai,j的递推公式,即求i(1=个骰子顶面数之和为j(原创 2011-11-10 09:33:01 · 1867 阅读 · 0 评论 -
微软2013校园招聘笔试试题及详细解答
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/8770201(不定项选择题)1. Which of the following calling conversion(s) support(s) variable-lengt parameter(e.g. printf)? A. cd原创 2013-04-09 10:31:40 · 6094 阅读 · 0 评论 -
随机概率相关的面试题
1. 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10。只调用一次rand7()肯定无法达到目的。我们调用两次rand7(),这样我们可以随机的得到1~49中的一个数,为什么呢?我们将49分成7段,1~7,8~14,15~21,22~28,29~35,36~42,43~49,第一次rand7()随机选择其中一段,第二次rand7原创 2013-04-11 17:49:52 · 3645 阅读 · 0 评论 -
子数组的乘积
给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i]。在构造过程:不允许使用除法;要求O(1)空间复杂度和O(n)时间复杂度;除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、对空间和全局静态变量等);请用程序实现并简单描述。先看实现代码:void product(int a[], i原创 2013-04-12 20:58:31 · 3607 阅读 · 4 评论 -
求能整除正整数a或b的正整数序列
题目:正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b,需要计算出Q中的前几项,例如,当a=3,b=5,N=6时,序列为3,5,6,9,10,12(1)设计一个函数void generate(int a, int b, int N, int * Q)计算Q的前N项(2)设计测试数据来验证函数程序在各种输入下的正确性最简单的想法就是,从1开始挨个验证,能否被a或b原创 2012-08-17 21:50:01 · 7021 阅读 · 3 评论 -
【谷歌面试题】找出字符串中只包含两种字符的最长子串
给出一个字符串,找出只包含2种字符的最长子串。如aabbcbbbadef,结果是bbcbbb。string longestSubStrWith2Chars(const string &s){ int len = s.length(); // 空串返回空串 if(len == 0) return ""; char ch1, ch2; int ch1LastPos, ch2原创 2013-05-16 11:38:45 · 4227 阅读 · 1 评论 -
挖雷游戏的概率
转自:http://blog.csdn.net/freeboy1015/article/details/7544835编程之美最后一题“挖雷游戏的概率”没附答案, 有一则脚注云“此题适合MATLAB用户解答”, 颇感有趣. 题目说, 一局16×16的扫雷游戏刚开始, 只翻开了两格, 分别显示数字1和2, 如下图所示(只画出了3×5的局部示意图). 设地雷总数从10逐渐增加到240, 请转载 2013-05-21 21:16:46 · 3593 阅读 · 0 评论 -
【谷歌面试题】找出二叉查找树中出现频率最高的元素
找出二叉查找树中出现频率最高的元素。树中结点满足left->val val val。如果多个元素出现次数相等,返回最小的元素。在一个有序数组中,我们查找出现频率最高的元素,很简单,顺序扫描一遍即可统计出。那么我们对二叉查找树也可以用类似方式统计,因为中序遍历序列就是有序序列,所以我们在中序遍历的过程中就可以统计出出现频率最高的元素。class TreeNode{public: i原创 2013-05-23 11:38:20 · 7808 阅读 · 0 评论 -
用位运算实现两个整数的加减乘除运算
位运算的思想可以应用到很多地方,这里简单的总结一下用位运算来实现整数的四则运算。1.整数加法int Add(int a,int b) { for(int i = 1; i; i <<= 1) if(b & i) for(int j = i; j; j <<= 1)原创 2011-10-18 23:28:24 · 19977 阅读 · 5 评论