1、void f(char* c, char d) *c = *c +1; d = d+1; coutcd;void main() char a = A, b = a; f(&b, a);A、BaBa B、aBaB C、AbAb D、bBAb4、若二叉搜索树有三个节点,对应于三个不同的值A、B、C,这样的二叉搜索树共有多少种可能的构造?( )A、1 B、2 C、3 D、4 E、55、假设把整数关键码K散列到有N个槽的散列表,以下哪些散列函数是好的散列函数?1) h(k) = k / N;2) h(k) = 1;3) h(k) = k mod N;4) h(k) = (k + Random(N) m
2、od N, Random(N)返回一个0到N-1的整数A、1) B、2) C、3) D、4) E、3)和4)6、有如下递归函数f(n),其时间复杂度为( )int f(int n) int sum = 0; for(int i=0; iuvSvu|w所识别的语言是:()a、uvw*vu b、(uvwvu)* c、uv(uv)*wvu(vu)* d、(uv)*w(vu)*3、如下程序段输出是:char str10=Hello,Google;char *p=str0;countstrlen(p 10);a、0 b、5 c、6 d、104、cnt=0while(x!=1)cnt=cnt 1;if(x
3、&1=0)x=x/2;elsex=3*x 1;cntend1;当n=11时,输出:a、12 b、13 c、14 d、155、写一段程序判定一个有向图G中节点w是否从节点v可达。(假如G中存在一条从v至w的路径就说节点w是从v可达的)。以下算法是用C 写成的,在bool Reachable函数中,你可以写出自己的算法。class Graphpublic:int NumberOfNodes();/返回节点的总数bool HasEdge(int u,int v);/u,v是节点个数,从零开始依次递增,当有一条从u到v的边时,返回true;bool Reachable(Graph&G, int v,
4、int w)/请写入你的算法6、给定一棵所有边的长度均为整数的树,现要求延长其中某些边,使得从根到任意节点的路径长度相等。问满足要求的树的边长度之和最小是多少?请写出你的算法,并分析时间复杂度。欢迎回复,给出你的解答。从没有找工作经历的我今天参加了Google的笔试,本来还自我感觉良好呢,谁知道考题那是嗷嗷不会啊。考的几乎都是算法,指针非凡的多,不过时间太久不用了都忘记了,数据结构的也不少,考了队列,还有一些编译原理的题,关于表达式的;三道大题第一个还蛮简单,是向双向列表插入一个节点,第二个问题比较恶心,判定A字符串中的各个字符数目是否不大于B字符串中的各个字符数目,由于没时间了就没写完,第三
5、题更是相当及其以及非凡的恶心,找到整数数组中满足A*B=C的元素,而且要更优的,算了半天的时间复杂度还是没写出来。还是忙该忙的事吧,眼看期末考试了,不能挂课,加油!不过google的题目确实出的很好,看似简单,但需要扎实的基本功和一定的熟练程度,后边的算法设计更需要一些技巧。十几道选择,4个算法,100分钟。走出考场忽然有种恍惚的感觉,碰到一个哥们儿一起拼车回学校,路上聊起找工作的事情都是颇有感慨,今天的笔试他说是“过把瘾就死”。可能吧!google笔试,据说小题都对就进入面试zz1、 两个二进制数的异或结果2、 递归函数最终会结束,那么这个函数一定(不定项选择):1. 使用了局部变量 2.
6、有一个分支不调用自身3. 使用了全局变量或者使用了一个或多个参数3、以下函数的结果?int cal(int x) if(x=0)return 0; else return x+cal(x-1);4、 以下程序的结果?void foo(int*a, int* b) *a = *a+*b; *b = *a-*b; *a = *a-*b;void main() int a=1, b=2, c=3; foo(&a,&b);b,&c);c,&a); printf(%d, %d, %d, a,b,c);5、下面哪项不是链表优于数组的特点? 1. 方便删除 2. 方便插入 3. 长度可变 4. 存储空间小6
7、、T(n) = 25T(n/5)+n2的时间复杂度?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. 进程倾向于占用CPU 2. 访问局部性(locality of reference)满足进程要求3. 进程倾向于占用I/O 4.使用基于最短剩余时间(shortest remaining time)的调度机制 5. 减少页大小10、实现两个N*N矩阵的乘法,矩阵由一维数组表示11
8、、找到单向链表中间那个元素,如果有两个则取前面一个12、长度为n的整数数组,找出其中任意(n-1)个乘积最大的那一组,只能用乘法,不可以用除法。要求对算法的时间复杂度和空间复杂度作出分析,不要求写程序。面试时1V1除了开场之外都是真刀真抢的白纸上写程序1.热身题:写个memmove函数,注意源地址和目标地址可能有重合的部分一开始没有空间限制,开个临时空间,作为中间量,回避源地址和目标地址有重合的情况之后不许使用临时空间,要求O(N)利用指针的比较运算,决定从前开始拷贝还是从后开始拷贝2.热身题:100!的结果中,末尾有几个0其实就是1到100每个整数分解质因数,有几个5就有几个0热身题注意细节
9、,考官看的很仔细3.围棋中,每下一子之后,判断那些棋子需要被提走我用FloodFill做的4. 给定一系列规则,形式如下AB,BC等等之后判断一个命题的真假比如A 2) T(0) = T(1) = 1, T(2) = 2.int tribonaci(int n) if (n 0) / Undefined feature. return 0; if (0 = n | 1 = n) return 1; if (2 = n) int mid, right; int left = find_trib(n, mid, right); return left + mid + right;啊啊,对了,答卷的
10、时候我可没心情写注释刚才到VC.Net 2003上测试了一下,貌似没有啥问题。唉,看来我多少还是懂一点算法的第三个的题目:在一个无向图中,寻找是否有一条距离为K的路径,描述算法即可,不用实现,分析算法的时间和空间复杂度,尽量优化算法。OK,这个就是传说中的软肋了我也就不把自己的答案写出来了(丢人啊),虽然后来仔细想想,我那个挫挫的方法也能够用只是效率Thats all.粗体文字 取自这都已经是昨天的事啦。之所以起这个标题是想有朝一日本博的文章也会被搜索引擎搜到,然后访问量就是指数级增长,有没有可能啊。话说某歌和某度居然在某一天的同一个时间搞宣讲笔试,只不过一个在就业中心,一个在科学馆,在我XJ
11、TU的广袤土地上东西对峙,真是让人不记住鱼和熊掌的故事都难。Google的笔试时间一个月前就确定了,baidu一个周之前才得到消息,所以俺有理由认为,这是XX要问鼎中原的意思啦。够豪迈呀,就不怕人都去了google冷场么?看来XX还是很自信的,赞一个,况且XX的中文搜索做得不比google差。俺坚决支持民族自己的搜索引擎,虽然事实上俺是去了google 笔试。此事不怪俺,想想科学馆那昏暗的灯光吧,俺觉得,非常及其适合你在台下看着你偶像的脸搞个人崇拜 今天听说昨晚XX非常人性化,每人一瓶矿泉水,一块巧克力蛋糕,后来因为天热还每人发了纸巾擦汗,这下俺亏大了嘿嘿。俺本来发文的目的是说下笔试题,想想还
12、是不说了,想知道的可以私下跟俺讨论,题目不难,全做对也不容易,不过错个两三道基本也就kaka了。考察得很全面,算法数据结构操作系统编译原理网络离散数学,还居然考了个中断。笔试之前的宣讲会,略有收获。获知Google全球共有员工12000左右,其中总部8000左右,而google中国,北京195,上海45,台北35,而在一年前这一数字分别是北京100,上海20(这个没记准确),台北10。我得到的唯一结论:google中国还差的远啊,不知道开复能把它做成什么样子,应该不会撤摊子吧。这是第二次笔试,作个记录,以备日后参考,题目另行记录。1、 两个二进制数的异或结果 1. 使用了局部变量 2. 有一个分支不调用自身3. 使用了全局变量或者使用了一个或多个参数if(x=0)return x+cal(x-1);*a = *a+*b;*b = *a-*b;*a = *a-*b;int a=1, b=2, c=3;foo(&printf( 1. 方便删除 2. 方便插入 3. 长度可变 4. 存储空间小 6、T(n) = 25T(n/5)+n2的时间复杂度
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1