各大IT公司笔试面试题目

各大IT公司笔试面试题目

ID:42659033

大小:296.50 KB

页数:31页

时间:2019-09-19

各大IT公司笔试面试题目_第1页
各大IT公司笔试面试题目_第2页
各大IT公司笔试面试题目_第3页
各大IT公司笔试面试题目_第4页
各大IT公司笔试面试题目_第5页
资源描述:

《各大IT公司笔试面试题目》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2011各大IT公司笔试面试题目分类: C++语法知识2012-02-1211:05 563人阅读 评论(1) 收藏 举报2011.10.17百度面试题1、进程切换需要注意哪些问题?保存处理器PC寄存器的值到被中止进程的私有堆栈;     保存处理器PSW寄存器的值到被中止进程的私有堆栈;   保存处理器SP寄存器的值到被中止进程的进程控制块;保存处理器其他寄存器的值到被中止进程的私有堆栈;    自侍运行进程的进程控制块取SP值并存入处理器的寄存器SP;   自侍运行进程的私有堆栈恢复处理器各

2、寄存器的值;自侍运行进程的私有堆栈中弹出PSW值并送入处理器的PSW;    自侍运行进程的私有堆栈中弹出PC值并送入处理器的PC。2、输入一个升序数组,然后在数组中快速寻找两个数字,其和等于一个给定的值。这个编程之美上面有这个题目的,很简单的,用两个指针一个指向数组前面,一个指向数组的后面,遍历一遍就可以了。3、有一个名人和很多平民在一块,平民都认识这个名人,但是这个名人不认识任何一个平民,任意两个平民之间是否认识是未知的,请设计一个算法,快速找出这些人中的那个名人。 已知已经实现了一个函数 

3、boolknow(inta,intb)这个函数返回true的时候,表明a认识b,返回false的时候表明a不认识b。思路:首先将n个人分为n/2组,每一组有2个人,然后每个组的两个人调用这个know函数,假设为know(a,b),返回true的时候说明a认识b,则a肯定不是名人,a可以排除掉了,依次类推,每个组都调用这个函数依次,那么n个人中就有n/2个人被排除掉了,数据规模将为n/2。同理在剩下的n/2个人中在使用这个方法,那么规模就会将为n/4,这样所有的遍历次数为n/2+n/4+n/8+.

4、.......这个一个等比数列,时间复杂度为o(n)。4、判断一个自然数是否是某个数的平方。当然不能使用开方运算。方法1:遍历从1到N的数字,求取平方并和N进行比较。如果平方小于N,则继续遍历;如果等于N,则成功退出;如果大于N,则失败退出。复杂度为O(n^0.5)。方法2:使用二分查找法,对1到N之间的数字进行判断。复杂度为O(logn)。方法3:由于(n+1)^2=n^2+2n+1,=...=1+(2*1+1)+(2*2+1)+...+(2*n+1)注意到这些项构成了等差数列(每项之间相差2

5、)。所以我们可以比较N-1,N-1-3,N-1-3-5...和0的关系。如果大于0,则继续减;如果等于0,则成功退出;如果小于0,则失败退出。复杂度为O(n^0.5)。不过方法3中利用加减法替换掉了方法1中的乘法,所以速度会更快些。例如:3^2=9=1+2*1+1+2*2+1=1+3+54^2=16=1+2*1+1+2*2+1 + 2*3+1viewplain1.int square(int n)  2.{  3.    int i = 1;  4.    n = n - i;  5.    w

6、hile( n > 0 )  6.    {  7.        i += 2;  8.        n -= i;  9.    }  10.    if( n == 0 )        //是某个数的平方  11.        return 1;  12.    else                //不是某个数的平方  13.        return 0;  14.}   百度2011.10.16校园招聘会笔试题一、算法设计1、设rand(s,t)返回[s,t]之间的随机小

7、数,利用该函数在一个半径为R的圆内找随机n个点,并给出时间复杂度分析。思路:这个使用数学中的极坐标来解决,先调用[s1,t1]随机产生一个数r,归一化后乘以半径,得到R*(r-s1)/(t1-s1),然后在调用[s2,t2]随机产生一个数a,归一化后得到角度:360*(a-s2)/(t2-s2)2、为分析用户行为,系统常需存储用户的一些query,但因query非常多,故系统不能全存,设系统每天只存m个query,现设计一个算法,对用户请求的query进行随机选择m个,请给一个方案,使得每个qu

8、ery被抽中的概率相等,并分析之,注意:不到最后一刻,并不知用户的总请求量。思路:如果用户查询的数量小于m,那么直接就存起来。如果用户查询的数量大于m,假设为m+i,那么在1-----m+i之间随机产生一个数,如果选择的是前面m条查询进行存取,那么概率为m/(m+i),如果选择的是后面i条记录中的查询,那么用这个记录来替换前面m条查询记录的概率为m/(m+i)*(1-1/m)=(m-1)/(m+i),当查询记录量很大的时候,m/(m+i)==(m-1)/(m+i),所以每个query被抽中的概率

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。