sum=sum+i;
returnf(n/2)+f((n+1)/2)+sum;
}
A、O(n)B、O(nlongn)C、O(n^2)D、O(n^(3/2))
7、进程从拥塞状态变为就绪状态是发生在()
A、分配给进程的时间片用完
B、进程等待的事件发生
C、进程被调度程序选中
D、进程等待某一事件
8、如果有多个中断同时发生,系统将根据中断优先级响应优先级最高的中断请求。
若要调整中断事件的响应次序,可以利用()
A、中断向量B、中断嵌套C、中断响应D、中断屏蔽
9、在编译原理里,上下文无关文法和正则文法的描述能力为()
A、上下文无关文法更强B、正则文法更强C、两者相当D、无法比
较
10、IP数据报分片的重组通常发生在以下哪个位置()
A、源主机B、目的主机C、路由器D、以太网交换机
二、程序设计与算法
1、通常在数学中一元n次多项式可表示成如下的形式:
Pn(x)=a0+a1*x+a2*x^2+...+an*x^n
(1)请设计一套接口用以表示和操作一元n次多项式
(2)根据上述设计实现一元n次多项式的加法运算
(3)根据上述设计实现一元n次多项式的乘法运算
2、给定A、B两个等长的数组,A和B中的数相同,但是顺序不同,现在只能取A中某
数和B中某数进行比较只能知道大或者小或者相等,怎么将A和B中相同的数配对?
分
析你的算法的时间复杂度。
解释算
法即可,不必写代码。
三、
1、你做过的最有创意的软件项目是什么?
请简单描述一下。
2、这个创意有没有被人使用?
____________________________________________________________________
google笔试大全!
超全呀!
今年10月底,Google在美国《麻省技术评论》、《LinuxJournal》、《Mensa》、《今日物理》等几本专业杂志上刊登了一份“Google实验室能力倾向测试”的试卷,开头蛊惑地写着“试试看!
把答案寄回Google,你有希望去Google总部参观,并成为我们其中一员”。
有兴趣的人可以做完了邮寄给Google公司,也许会得到一个工作机会呢。
1、解答下面的隐藏等式,其中的M和E的值可以互换,但不允许第一位是0:
WWWDOT-GOOGLE=DOTCOM
2、用一个俳句(一种日本短诗,每句有一个与季节有关的词)来建立模型,借
此预测网络搜索流量的季节性变化;
3、
1
1
21
1211
111221
下一行是什么?
4、你正处于一个全部由崎岖小路构成的迷宫里,手里有一个满是灰尘的笔记本,可以无线上网,但是信号很弱。
与此同时,一些阴森可怕、毫无生气的妖怪在你身边游荡。
你会怎么做呢?
(1)毫无目的的四处游荡,到处碰壁,直到被迷宫里的妖怪吃掉。
(2)用笔记本作为挖掘工具,打穿地面直接进入下一关。
(3)玩网络游戏《魔法骑兵》,直至电池耗尽,你也心灰意冷。
(4)使用笔记本画出迷宫的节点地图,找到出路。
(5)发送简历给Google,告诉主管妖怪你选择退出,随后你就回到现实世界。
5、Unix有何缺陷?
你准备如何补救?
6、在Google工作的第一天,你发现身边的同事竟然是研究生一年级课本的作
者,你会:
(1)主动示好并索取签名。
(2)不改变坐姿,但放轻打字声音,避免影响她的工作和思考。
(3)把你每天的麦片和咖啡都留给她享用。
(4)在她所写的书中找到你最喜欢的内容,并告诉她这些内容已经成为你的座
右铭。
7、下列哪句话最贴切的表达了Google的企业文化?
(1)我感到很幸运。
(2)不要干坏事。
(3)哦,我已经解决了那个问题。
(4)你身边50英寸之内,必定能找到食物。
(5)以上皆是。
8、用3种颜色为20面体上色,每个面一种颜色,有多少种组合?
你会选择哪些
颜色?
9、下面是故意留出的空白,请将其填满,使之看起来不那么空。
10、用1欧姆的电阻组成无限大的两维矩阵,“象棋跳马步”(“日”字对角点
)两点之间的电阻是多少?
11、现在是星期日下午2点,你正在旧金山著名的湾区。
你可以选择去国家公
园的红杉林里徒步旅行,或者参观城市里的文化景观。
你会怎么做?
12、你认为最美的数学等式是什么?
13、下列哪个团体没有在Google员工中形成?
(1)女子篮球
(2)淡黄色爱好者
(3)Cricketeers
(4)诺贝尔奖获得者
(5)葡萄酒俱乐部
14、搜索技术的下一个革命性突破是什么?
15、一个项目组由多少人构成才能达到最优规模?
也就是说,一旦超过这一数
字,每增加一个成员项目组的平均生产力就会相应下降。
(1)1个
(2)3个
(3)5个
(4)11个
(5)24个
16、给你一个三角形ABC,请用圆规和尺找出点P,保证三角形ABP、ACP和BCP
周长相等。
17、有这样一个函数,对于任意整数n,都能返回写出0到n之间出现“1”的个
数。
例如,f(13)=6。
请注意f
(1)=1,那么下一个能实现f(n)=n的最大数字
是什么?
18、你编写的最酷的黑客程序是什么?
19、在下面的数列中,下一个数字是多少:
10,9,60,90,70,66,?
(1)96
(2)10的100次方
(3)以上皆是
(4)以上皆不是
20、用少于29个词,描述你能带给Google实验室带来的贡献。
(天外)
--
“微软是个公平的公司,这里几乎没有特权。
盖茨只是这两年才有了自己的一个停车位。
以前他来晚了没地儿,就得自己到处去找停车位。
”
“微软非常强调员工的动手能力。
在做新产品发布时,盖茨都能自己动手做演示。
他总是在和工程师作搭档,对自己的产品很熟悉,这样,任何人都糊弄不了他。
”
____________________________________________________________________
1、假设在n进制下,下面的等式成立,n值是()
567*456=150216
a、9b、10c、12d、18
2、文法G:
S->uvSvu|w所识别的语言是:
()
a、uvw*vub、(uvwvu)*c、uv(uv)*wvu(vu)*d、(uv)*w(vu)*
3、如下程序段输出是:
()
charstr[][10]={"Hello","Google"};
char*p=str[0];
count<a、0b、5c、6d、10
4、cnt=0
while(x!
=1){
cnt=cnt1;
if(x&1==0)
x=x/2;
else
x=3*x1;
}
count<当n=11时,输出:
()
a、12b、13c、14d、15
5、写一段程序判定一个有向图G中节点w是否从节点v可达。
(假如G中存在一条从v至w的路径就说节点w是从v可达的)。
以下算法是用C写成的,在boolReachable函数中,你可以写出自己的算法。
classGraph{
public:
intNumberOfNodes();//返回节点的总数
boolHasEdge(intu,intv);//u,v是节点个数,从零开始依次递增,当有一条从u到v的边时,返回true
};
boolReachable(Graph&G,intv,intw){
//请写入你的算法
}
6、给定一棵所有边的长度均为整数的树,现要求延长其中某些边,使得从根到任意节点的路径长度相等。
问满足要求的树的边长度之和最小是多少?
请写出你的算法,并分析时间复杂度。
欢迎回复,给出你的解答。
____________________________________________________________________
从没有找工作经历的我今天参加了Google的笔试,本来还自我感觉良好呢,谁知道考题那是嗷嗷不会啊。
考的几乎都是算法,指针非凡的多,不过时间太久不用了都忘记了,数据结构的也不少,考了队列,还有一些编译原理的题,关于表达式的;
三道大题第一个还蛮简单,是向双向列表插入一个节点,第二个问题比较恶心,判定A字符串中的各个字符数目是否不大于B字符串中的各个字符数目,由于没时间了就没写完,第三题更是相当及其以及非凡的恶心,找到整数数组中满足A*B=C的元素,而且要更优的,算了半天的时间复杂度还是没写出来。
还是忙该忙的事吧,眼看期末考试了,不能挂课,加油!
!
!
____________________________________________________________________
不过google的题目确实出的很好,看似简单,但需要扎实的基本功和一定的熟练程度,后边的算法设计更需要一些技巧。
十几道选择,4个算法,100分钟。
走出考场忽然有种恍惚的感觉,碰到一个哥们儿一起拼车回学校,路上聊起找工作的事情都是颇有感慨,今天的笔试他说是“过把瘾就死”。
可能吧!
____________________________________________________________________
google笔试,据说小题都对就进入面试zz
1、两个二进制数的异或结果
2、递归函数最终会结束,那么这个函数一定(不定项选择):
1.使用了局部变量2.有一个分支不调用自身
3.使用了全局变量或者使用了一个或多个参数
3、以下函数的结果?
intcal(intx)
{
if(x==0)
return0;
else
returnx+cal(x-1);
}
4、以下程序的结果?
voidfoo(int*a,int*b)
{
*a=*a+*b;
*b=*a-*b;
*a=*a-*b;
}
voidmain()
{
inta=1,b=2,c=3;
foo(&a,&b);
foo(&b,&c);
foo(&c,&a);
printf("%d,%d,%d",a,b,c);
}
5、下面哪项不是链表优于数组的特点?
1.方便删除2.方便插入3.长度可变4.存储空间小
6、T(n)=25T(n/5)+n^2的时间复杂度?
7、n个顶点,m条边的全连通图,至少去掉几条边才能构成一棵树?
8、正则表达式(01|10|1001|0110)*与下列哪个表达式一样?
1.(0|1)*2.(01|01)*3.(01|10)*4.(11|01)*5.(01|1)*
9、如何减少换页错误?
1.进程倾向于占用CPU2.访问局部性(localityofreference)满足进程要求
3.进程倾向于占用I/O4.使用基于最短剩余时间(shortestremainingtime)的调度
机制5.减少页大小
10、实现两个N*N矩阵的乘法,矩阵由一维数组表示
11、找到单向链表中间那个元素,如果有两个则取前面一个
12、长度为n的整数数组,找出其中任意(n-1)个乘积最大的那一组,只能用乘法,不可
以用除法。
要求对算法的时间复杂度和空间复杂度作出分析,不要求写程序。
面试时1V1
除了开场之外
都是真刀真抢的白纸上写程序
1.热身题:
写个memmove函数,注意源地址和目标地址可能有重合的部分
一开始没有空间限制,开个临时空间,作为中间量,回避源地址和目标地址有重合的情况
之后不许使用临时空间,要求O(N)
利用指针的比较运算,决定从前开始拷贝还是从后开始拷贝
2.热身题:
100!
的结果中,末尾有几个0
其实就是1到100每个整数分解质因数,有几个5就有几个0
热身题注意细节,考官看的很仔细
3.围棋中,每下一子之后,判断那些棋子需要被提走
我用FloodFill做的
4.给定一系列规则,形式如下A
之后判断一个命题的真假比如A我是用传递闭包的W-F算法O(N^3)做的
还有一些写链表插入删除
二叉树插入删除
归并排序
等纯细节题目
剩下的实在没有印象
____________________________________________________________________
共享Google笔试题
Google笔试是没有门槛的。
这样说是因为Google根本没有限制笔试的人数,开了N个教室,让N多人参加……不过笔试本身却有门槛,看了题目就知道。
本来想上午写写的,但是,嗯,出于攒人品的目的,还是等到现在才写——现在,面试通知已经发过,很显然我又被无视了……OK,那也不错,我也没怎么准备这些东西呢,倒不是说我不重视,而是事情太多……唔,多少算是一种经验了。
回来说说昨天的笔试。
题目的量并不大,除了几个单选题,剩下就是三个编程或算法题。
单选就不说了,考得比较基础,涉及C语言常识、数据结构、文法、操作系统,主要说说大题。
大题虽然题型不一,但都有一个重要特点:
考递归。
精确点说,我每一题都用到了递归。
第一个的题目(嗯,记的不是很完整):
在一棵(排序?
)二叉树中搜索指定值,数据结构定义为(唉唉,数据结构的具体名字都不记得了,mygod):
structNode
{
Node*lnext;
Node*rnext;
intvalue;
};
函数定义为(情况同上,啥都记不清了):
Node*search(Node*root,intvalue)
{
}
实现这个search函数。
用递归,经典的树的遍历,pass先。
第二个的题目:
计算Tribonaci队列(嗯,九成九记错了那个单词……),规则是T(n)=T(n-1)+T(n-2)+T(n-3),其中T(0)=T
(1)=1,T
(2)=2。
函数定义:
intTribonaci(intn){
}
备注,不考虑证整数溢出,尽可能优化算法。
这一题我一看就知道要考什么,很显然的递归定义,但也是很显然的,这里所谓的优化是指不要重复计算。
简单的说,在计算T(n)的时候要用到T(n-1)、T(n-2)和T(n-3)的结果,在计算T(n-1)的时候也要用到T(n-2)和T(n-3)的结果,所以在各项计算的时候必须把以前计算的结果记录下来,去掉重复计算。
这里用到的一点小技巧就是要新写一个函数用来做这种事情,嗯,看看我写的代码吧!
/**
GetthevalueofT(n-1),andretrievetheresultof
T(n-2)andT(n-3).
@param[in]nTheninT(n).
@param[out]midValueofT(n-2).
@param[out]rightValueofT(n-3).
@returnValueofT(n-1).
*/
intfind_trib(intn,int&mid,int&right)
{
if(3==n)
{
mid=1;
right=1;
return2;
}
else
{
inttemp;
mid=find_trib(n-1,right,temp);
returnmid+right+temp;
}
}
/**
FindvalueofT(n).
@param[in]TheninT(n).
@returnValueofT(n).
@noteT(n)=T(n-1)+T(n-2)+T(n-3)(n>2)
T(0)=T
(1)=1,T
(2)=2.
*/
inttribonaci(intn)
{
if(n<0)
{
//Undefinedfeature.
return0;
}
if(0==n||1==n)
{
return1;
}
if(2==n)
{
return2;
}
intmid,right;
intleft=find_trib(n,mid,right);
returnleft+mid+right;
}
啊啊,对了,答卷的时候我可没心情写注释……刚才到VC.Net2003上测试了一下,貌似没有啥问题。
唉,看来我多少还是懂一点算法的……
第三个的题目:
在一个无向图中,寻找是否有一条距离为K的路径,描述算法即可,不用实现,分析算法的时间和空间复杂度,尽量优化算法。
OK,这个就是传说中的软肋了………………我也就不把自己的答案写出来了(丢人啊),虽然后来仔细想想,我那个挫挫的方法也能够用……只是效率……
That'sall.
粗体文字
取自"
这都已经是昨天的事啦。
之所以起这个标题是想有朝一日本博的文章也会被搜索引擎搜到,然后访问量就是指数级增长,有没有可能啊。
话说某歌和某度居然在某一天的同一个时间搞宣讲+笔试,只不过一个在就业中心,一个在科学馆,在我XJTU的广袤土地上东西对峙,真是让人不记住鱼和熊掌的故事都难。
Google的笔试时间一个月前就确定了,baidu一个周之前才得到消息,所以俺有理由认为,这是XX要问鼎中原的意思啦。
够豪迈呀,就不怕人都去了google冷场么?
看来XX还是很自信的,赞一个,况且XX的中文搜索做得不比google差。
俺坚决支持民族自己的搜索引擎,虽然事实上俺是去了google笔试。
此事不怪俺,想想科学馆那昏暗的灯光吧,俺觉得,非常及其适合你在台下看着你偶像的脸搞个人崇拜……
今天听说昨晚XX非常人性化,每人一瓶矿泉水,一块巧克力蛋糕,后来因为天热还每人发了纸巾擦汗,这下俺亏大了……嘿嘿。
俺本来发文的目的是说下笔试题,想想还是不说了,想知道的可以私下跟俺讨论,题目不难,全做对也不容易,不过错个两三道基本也就kaka了。
考察得很全面,算法+数据结构+操作系统+编译原理+网络+离散数学,还居然考了个中断。
笔试之前的宣讲会,略有收获。
获知Google全球共有员工12000左右,其中总部8000左右,而google中国,北京195,上海45,台北35,而在一年前这一数字分别是北京100,上海20(这个没记准确),台北10。
我得到的唯一结论:
google中国还差的远啊,不知道开复能把它做成什么样子,应该不会撤摊子吧。
这是第二次笔试,作个记录,以备日后参考,题目另行记录。
1、两个二进制数的异或结果
2、递归函数最终会结束,那么这个函数一定(不定项选择):
1.使用了局部变量
2.有一个分支不调用自身
3.使用了全局变量或者使用了一个或多个参数
3、以下函数的结果?
intcal(intx)
{
if(x==0)
return0;
else
returnx+cal(x-1);
}
4、以下程序的结果?
voidfoo(int*a,int*b)
{
*a=*a+*b;
*b=*a-*b;
*a=*a-*b;
}
voidmain()
{
inta=1,b=2,c=3;
foo(&a,&b);
foo(&b,&c);
foo(&c,&a);
printf("%d,%d,%d",a,b,c);
}
5、下面哪项不是链表优于数组的特点?
1.方便删除2.方便插入3.长度可变4.存储空间小
6、T(n)=25T(n/5)+n^2的时间复杂度