谷歌2013校园招聘笔试题心得(附答案)

合集下载

关于Google产品经理笔试题和面试题

关于Google产品经理笔试题和面试题

关于Google产品经理笔试题和面试题Google是全球知名的科技巨头,许多人梦寐以求成为Google的产品经理。

作为一家技术驱动型企业,Google对产品经理的需求也相当高。

Google的产品经理笔试题和面试题具有一定的难度,考察的内容涵盖了产品理解、逻辑思维、分析能力和创新意识等多个方面。

本文将从笔试题和面试题两个方面,详细介绍Google产品经理的招聘流程和相关问题。

一、Google产品经理笔试题1. 产品问题:针对候选人的产品理解和分析能力进行考察。

例如,给定一个产品场景,要求候选人结合自身经验和思考,回答相关问题,如如何提升该产品在竞争市场中的竞争力,如何优化用户体验等。

2. 逻辑问题:考察候选人的逻辑思维和问题解决能力。

例如,给定一个问题,要求候选人进行推理和分析,给出一个完整的解决方案。

3. 商业问题:考察候选人对商业模式、市场需求和机会的把握能力。

例如,给定一个市场情景,要求候选人根据手头的数据和信息,提出一种商业策略或市场推广方案。

4. 创新问题:考察候选人的创新意识和解决问题的能力。

例如,给定一个现实生活中的问题,要求候选人提出一种创新的解决方案,并阐述其优势和可行性。

二、Google产品经理面试题1. 产品设计:要求候选人结合自身经验和理解,讲述一个自己参与设计的产品案例,说明整个设计过程、面临的困难和解决方案,并进行评价和总结。

2. 技术问题:考察候选人对技术的理解和应用能力。

例如,要求候选人解释一种前沿技术的实现原理,并说明如何将其应用到具体的产品设计中。

3. 用户问题:要求候选人从用户的角度出发,讨论一个正在使用的产品的问题,并提出一些建设性的改进建议。

4. 领导能力:考察候选人的团队合作和领导能力。

例如,给定一个团队协作场景,要求候选人说明在该场景中如何发挥自己的领导作用,提高团队的效果和效率。

5. 面试官提问:考察候选人的思考和回答能力。

面试官可能会提问一些开放性问题,要求候选人深入思考,并给出合理和清晰的回答。

google 笔试题汇总 (转载)

google 笔试题汇总 (转载)

if (2 == n)
{
return 2;
}
int mid, right;
int left = find_trib(n, mid, right);
return left + mid + right;
}
啊啊,对了,答卷的时候我可没心情写注释……刚才到 2003上测试了一下,貌似没有啥问题。唉,看来我多少还是懂一点算法的……
大题虽然题型不一,但都有一个重要特点:考递归。精确点说,我每一题都用到了递归。
第一个的题目(嗯,记的不是很完整):
在一棵(排序?)二叉树中搜索指定值,数据结构定义为(唉唉,数据结构的具体名字都不记得了,my god):
struct Node
{
Node lnext;
Node rnext;
(A)等待时间 (B)寻道时间 (C)传输时间 (D)等待时间加寻道时间
(E)等待时间加寻道时间加传输时间
二、算法
1、打印出一个二叉树的内容。
2、在一个字符串中找到第一个只出现一次的字符。如abaccdeff,输出b。
3、给定一个长度为N的整数数组(元素有正有负),求所有元素之和,最大的一个子数组。分析算法时空复杂度。不必写代码。
int tribonaci(int n)
{
if (n 0)
{
Undefined feature.
return 0;
}
if (0 == n 1 == n)
{
return 1;
}
for(i=0;isize;i++)
{
temp_sum+=a[i];

谷歌笔试题

谷歌笔试题

谷歌笔试题附答案以及思路谷歌笔试题:判断一个自然数是否是某个数的平方。

当然不能使用开方运算。

假设待判断的数字是N。

方法1:遍历从1到N的数字,求取平方并和N进行比较。

如果平方小于N,则继续遍历;如果等于N,则成功退出;如果大于N,则失败退出。

复杂度为O(n^0.5)。

方法2:使用二分查找法,对1到N之间的数字进行判断。

复杂度为O(log n)。

方法3:由于(n+1)^2=n^2 + 2n + 1,= …= 1 + (2*1 + 1) + (2*2 + 1) + … + (2*n + 1)注意到这些项构成了等差数列(每项之间相差2)。

所以我们可以比较N-1,N – 1 – 3,N – 1 – 3 –5 … 和0的关系。

如果大于0,则继续减;如果等于0,则成功退出;如果小于0,则失败退出。

复杂度为O(n^0.5)。

不过方法3中利用加减法替换掉了方法1中的乘法,所以速度会更快些。

谷歌笔试题:如何随机选取1000个关键字给定一个数据流,其中包含无穷尽的搜索关键字(比如,人们在谷歌搜索时不断输入的关键字)。

如何才能从这个无穷尽的流中随机的选取1000个关键字?定义长度为1000的数组。

对于数据流中的前1000个关键字,显然都要放到数组中。

对于数据流中的的第n(n>1000)个关键字,我们知道这个关键字被随机选中的概率为1000/n。

所以我们以1000/n 的概率用这个关键字去替换数组中的随机一个。

这样就可以保证所有关键字都以1000/n的概率被选中。

对于后面的关键字都进行这样的处理,这样我们就可以保证数组中总是保存着1000个随机关键字。

谷歌笔试题:将下列表达式按照复杂度排序将下列表达式按照复杂度排序2^nn^Googol (其中Googol = 10^100)n!n^n按照复杂度从低到高为n^Googol2^nn!n^n谷歌笔试题:在半径为1的圆中随机选取一点假设圆心所在位置为坐标元点(0, 0)。

google笔试大全

google笔试大全

google笔试大全今年10月底,Google在美国《麻省技术评论》、《LinuxJournal》、《Mensa》、《今日物理》等几本专业杂志上刊登了一份“Google实验室能力倾向测试”的试卷,开头蛊惑地写着“试试看!把答案寄回Google,你有希望去Google总部参观,并成为我们其中一员”。

有兴趣的人可以做完了邮寄给Google公司,也许会得到一个工作机会呢。

1、解答下面的隐藏等式,其中的M和E的值可以互换,但不允许第一位是0:WWWDOT - GOOGLE = DOTCOM2、用一个俳句(一种日本短诗,每句有一个与季节有关的词)来建立模型,借此预测网络搜索流量的季节性变化;3、112 11 2 1 11 1 12 2 1下一行是什么?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、下面是故意留出的空白,请将其填满,使之看起来不那么空。

15道Google面试题(含答案)

15道Google面试题(含答案)

Google的面试题在刁钻古怪方面相当出名,甚至已经有些被神化的味道。

这个话题已经探讨过很多次,这里贴出15道Google面试题并一一给出了答案,其中不少都是流传很广的。

怎么样?下边来热热身,看看你有没有可能去Google工作吧!第一题:多少只高尔夫球才能填满一辆校车?(职位:产品经理)解析:通过这道题,Google希望测试出求职者是否有能力判断出解决问题的关键。

网友的答案:我想,一辆标准大小的校车约有8英尺宽、6英尺高、20英尺长——我能知道这些数字完全是因为我曾经无数次被堵在校车后面。

据此估算,一辆校车的容积约为960立方英尺,也就是160万立方英寸。

一个高尔夫球的半径约为0.85英寸,我认为一个高尔夫球的体积约为2.6立方英寸。

用校车的容积除以高尔夫球的体积,得到的结果是66万。

不过,由于校车里面还有座位等等各种东西,而且高尔夫球的形状使得不同的球之间会有不少空隙。

我的最终估算结果是50万。

这听起来有些荒唐。

如果我直接猜的话,我给出的答案肯定是10万以下,不过我相信我的数学水平。

当然,如果这里的校车是小布什当年坐过的那种,结果还要除以2,差不多是25万个。

第二题:让你清洗西雅图所有的玻璃窗,你的报价是多少?(职位:产品经理)答案:这一题我们可以玩点花招,我们的答案是“每扇窗10美元”。

第三题:有一个人们只想生男孩子的国家,他们在有儿子之前都会继续生育。

如果第一胎是女儿,他们就会继续生育直到有一个儿子。

这个国家的男女儿童比例是多少?(职位:产品经理)答案:这一题引发了不少争议,不过我们发现,这一题的解答步骤如下:1、假设一共用10对夫妻,每对夫妻有一个孩子,男女比例相等。

(共有10个孩子,5男5女);2、生女孩的5对夫妻又生了5个孩子,男女比例相等。

(共有15个孩子,男女儿童都是7.5个);3、生女孩的2.5对夫妻又生了2.5个孩子,男女比例相等。

(共有17.5个孩子,男女儿童都是8.75个);4、因此,男女比例是1:1。

Google公司预选笔试题

Google公司预选笔试题

Google公司预选笔试题发布时间:2010-03-16 来源:应届毕业生求职网1、假设在n进制下,下面的等式成立,n值是(d)567*456=150216a、9b、10c、12d、182、文法G:S->uvSvu|w所识别的语言是:(d)a、uvw*vub、(uvwvu)*c、uv(uv)*wvu(vu)*d、(uv)*w(vu)*3、如下程序段输出是:(c)char str[][10]={"Hello","Google"};char *p=str[0];count<<strlen(p+10);a、0b、5c、6d、104、cnt=0while(x!=1){cnt=cnt+1;if(x&1==0)x=x/2;elsex=3*x+1;}count<<cnt<<end1;当n=11时,输出:(c)a、12b、13c、14d、155、写一段程序判断一个有向图G中节点w是否从节点v可达。

(如果G中存在一条从v 至w的路径就说节点w是从v可达的)。

以下算法是用C++写成的,在bool Reachable 函数中,你可以写出自己的算法。

class Graph{public:int NumberOfNodes();//返回节点的总数bool HasEdge(int u,int v);//u,v是节点个数,从零开始依次递增,当有一条从u到v 的边时,返回true};bool Reachable(Graph&G, int v, int w){//请写入你的算法int n = NumberOfNodes();vector<bool> mark(n,0);//mark[v] = true;bfsQueue<int> q;q.push(v);while(!q.empty()) {int t = q.front();q.pop();mark[t] = true;for(int i = 0; i < n; i++) {if(HasEdge(t,i) && !mark[i]) {q.push(i);}}}return mark[w];//floyd warshellvector<vector<int> > length(n,n);fill(length[0],length[n],n+1);for(int k = 0; k < n; k++)for(int i = 0; i < n; i++)for(int j = 0; j < n; j++)length[i][j] = min(length[i][k] + length[k][j], length[i][j]);if(length[v][w] < n) return true;return false;}6、给定一棵所有边的长度均为整数的树,现要求延长其中某些边,使得从根到任意节点的路径长度相等。

google笔试题目

google笔试题目

google笔试题目,估计被bs了zz笔试我人生中参加的第一企业笔试其实考得很基础,不过N久没有复习,很多概念都生疏了发个题目,积累下人品吧,hoho~~发信人: csyoung (Youngster), 信区: IBMClub标题: [07.5.21]Google实习生招聘笔试题目发信站: 华南木棉BBS (Tue May 22 09:40:40 2007), 转信一、选择题1、定义{1, 2, ... n}*{1, 2, ... n}上的等价关系~(a, b)~(c, d)当且仅当a+b=c+d。

定义集合A(a, b) = {(x,y)|(x,y)~(a,b)},那么{1, 2, ... n}*{1, 2, ... n}上不同集合的数量为( )A、nB、2*n-1C、2*nD、n*n2、下面一段代码的输出是( )int a, b;int *x, *y;x = a;y = b;*x = 10;*y = *x;x = y;*x = 20;cout<<a<<' '<<b<<endl;A、10 20B、20 10C、10 10D、20 203、下面一段代码的输出结果是( )void f(char* c, char d){*c = *c +1;d = d+1;cout<<c<<d;}void main(){char a = 'A', b = 'a';f(b, a);cout<<a<<b<<endl;}A、BaBaB、aBaBC、AbAbD、bBAb4、若二叉搜索树有三个节点,对应于三个不同的值A、B、C,这样的二叉搜索树共有多少种可能的构造?( )A、1B、2C、3D、4E、55、假设把整数关键码K散列到有N个槽的散列表,以下哪些散列函数是好的散列函数?( )1) h(k) = k / N;2) h(k) = 1;3) h(k) = k mod N;4) h(k) = (k + Random(N)) mod 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; i<n; i++)sum = sum + i;return f(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、如果有多个中断同时发生,系统将根据中断优先级响应优先级最高的中断请求。

Google笔试题

Google笔试题

Google面试题1.下面哪项不是链表优于数组的特点?A.方便删除B.方便插入C.长度可变D.存储空间小2.T(n)=25T(n/5)+n*n的时间复杂度?3.有一幢100层高的大楼,给你两个完全相同的玻璃围棋子。

假设从某一层开始,丢下玻璃棋子就会破碎。

那么怎么利用手中的两颗棋子,用一种什么样的最优策略,知道这个临界的层高呢?___________________________________________________ _________________[07.5.21]Google实习生招聘笔试题目发信站: 华南木棉BBS (T ue May 22 09:40:40 2007), 转信一、选择题1、定义{1, 2, ... n}*{1, 2, ... n}上的等价关系~(a, b)~(c, d)当且仅当a+b=c+d。

定义集合A(a, b) = {(x,y)|(x,y)~(a,b)},那么{1, 2, ... n}*{1, 2, ... n}上不同集合的数量为( )A、nB、2*n-1C、2*nD、n*n2、下面一段代码的输出是( )int a, b;int *x, *y;x = &a;y = &b;*x = 10;*y = *x;x = y;*x = 20;cout<<a<<' '<<b<<endl;A、10 20B、20 10C、10 10D、20 203、下面一段代码的输出结果是( )void f(char* c, char d){*c = *c +1;d = d+1;cout<<c<<d;}void main(){char a = 'A', b = 'a';f(&b, a);cout<<a<<b<<endl;}A、BaBaB、aBaBC、AbAbD、bBAb4、若二叉搜索树有三个节点,对应于三个不同的值A、B、C,这样的二叉搜索树共有多少种可能的构造?( )A、1B、2C、3D、4E、55、假设把整数关键码K散列到有N个槽的散列表,以下哪些散列函数是好的散列函数?( )1) h(k) = k / N;2) h(k) = 1;3) h(k) = k mod N;4) h(k) = (k + Random(N)) mod 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; i<n; i++)sum = sum + i;return f(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、如果有多个中断同时发生,系统将根据中断优先级响应优先级最高的中断请求。

Google笔试题整理(超全!)附部分答案

Google笔试题整理(超全!)附部分答案

Google笔试题整理(超全!)附部分答案写出这样一个函数,输入一个n, 输出从1到这个数字之间的出现的1的个数,比如f(13)等于6; f(9)等于1; 网上有很多这道题的解法,大多采用穷举法。

这把这个算法题变成了程序设计,这道题,我认为是总结一个递推公式,然后用递推法实现,比较好。

后来在网上考证了一下,这道题本来也是让总结一个数学函数即可,无需编程。

既然写了,就贴出来,发表一下自己的解法。

这道题还有另一半,当f(n)=n是,最小的n是多少?本人还没有好的方法,所以就不贴了。

下面的程序是上半部java实现的。

/* 可以推出下列递推公式:* f(n)=(a>1?s:n-s*a+1)+a*f(s-1)+f(n-s*a)当n>9时;* L是n的位数* a是n的第一位数字* s是10的L-1次方* n-s*a求的是a后面的数.* 公式说明:* 求0-n 由多少个数字1,分三部分,一是所有数中第一位有多少个1,对应(a>1?s:n-s*a+1)* 当a大于1是,应该有a的L1次,a小于1是有n-s*a+1。

* 如n是223 所有数中第一位有1是100;n是123所有数中第一位是1的有24* 二是对应a*f(s-1)如n是223应该有2*f(99)个1* 三是对应f(n-s*a) 如n是223应该有f(23)个1。

*/long f(long n){if (n<9) return n>0?1:0;int L=(int)(Math.log10(n)+1);//求n的位数llong s=(long)Math.pow(10, L-1);//求10的l-1次方,方便求后面n的第一位数字,及其后面的数。

long a=(long)(n/s);//求n的第一位数字return (a>1?s:n-s*a+1)+a*f(s-1)+f(n-s*a);}google笔试题:A+B=C在一个集合S中寻找最大的C使A+B=C且A,B,C均在集合当中解答(原创)1,将集合S中的数排序X1<=X2<=X3.............Xn;2,for(i=n;i>0;i--){for(j=0,k=i-1;k>j;){if(Xj+Xk>Xi){k--;cotinue;}if(Xj+Xk<Xi){j++;contiue;}A=Xj;B=Xk;C=Xi;break;}例子:1,4,7,10,11,13,15,18,3434:1-18,4-18........15-1818:1-15,4-15,4-13,7-13,7-11结果:A=7;B=11,C=18;第一个的题目(嗯,记的不是很完整):在一棵(排序?)二叉树中搜索指定值,数据结构定义为:struct Node{Node * lnext;Node * rnext;int value;};函数定义为():Node * search(Node * root, int value){}实现这个search函数。

【精编范文】Google的招聘题目,看看你会不会做?-范文word版 (2页)

【精编范文】Google的招聘题目,看看你会不会做?-范文word版 (2页)

【精编范文】Google的招聘题目,看看你会不会做?-范文word版本文部分内容来自网络,本司不为其真实性负责,如有异议或侵权请及时联系,本司将予以删除!== 本文为word格式,下载后可随意编辑修改! ==Google的招聘题目,看看你会不会做?google惯用“整蛊题” google上一轮招聘,用的是一道“科学麻瓜”看不懂的“整蛊题”,而且,堂而皇之挂在硅谷各大地铁站上。

9月底,3块15米长的米色广告牌上,简简单单刷着“(在‘e’的数列中所能找到的第一个十位数质数).com”,没有公司名也没有任何广告词。

花了几秒钟,路人才明白,这是一道数学题。

自然常数e(2.718281828……)的第一个十位数质数,是目标网站的名字。

好奇分子忍不住用google搜索起答案来,压根儿不晓得这就是google出的“硬骨头”考题。

不少人后来在规定时间内,登录上了。

然而,那不是梦寐以求的终点站,google恶作剧似的,为“高手”们在半山腰设了个休息的小凉亭。

里,贴出一条更令人头疼的数学问题,答出这个问题,能得到进入下一个网页的密码。

跑完数学“马拉松”,7500个“幸存者”走入google实验室网页,成功投出简历。

最后,google只要了50个人。

“光以广告而论,google也算得上高段!”波士顿一家广告公司的高级副总裁弗里茨·库恩分析,“目标人群看到广告后会想,‘这是我的语言,那是冲着我来的’;对其他人而言,广告也使google 的形象大大提升。

他们可能会想,‘我是得不到这份工作的了。

不过,在那儿工作的人真聪明’。

” google测试考的就是脑筋·试着证明wwwdot-google=dotcom·用俳句(一种日本短诗,每句有一个与季节有关的词)来描述各种模型,借此预测网络搜索流量的季节性变化。

·你落入一个迷宫,回旋不断的走廊。

手里有一台堆满灰尘的手提电脑,可以无线上网。

周围,许多无生命的侏儒徘徊走动。

google面试,笔试逻辑题及问题详解

google面试,笔试逻辑题及问题详解

谷歌笔试面试逻辑题目,部分答案在最后边。

1.一辆学校班车里面能装多少个高尔夫球?2.你被缩小到只有硬币厚度那么点高(不是压扁,是按比例缩小),然后被扔到一个空的玻璃搅拌器中,搅拌刀片一分钟后就开始转动。

你怎么办?3.要是让你清洗整个西雅图的所有窗子,你会收取多少费用?4.怎么才能识别出电脑的内存堆栈是向上溢出还是向下溢出?5.你要向你8岁的侄子解释什么是数据库,请用三句话完成。

6.时钟的指针一天内会重合几次?7.你需要从A地去B地,但你不知道能不能到,这时该怎么办?8.好比你有一个衣橱,里面塞满了各种衬衫,你会怎么整理这些衬衫,好让你以后找衬衫的时候容易些?9.有个小镇有100对夫妇,每个丈夫都在欺骗他的妻子。

妻子们都无法识破自己丈夫的谎言,但是她们却能知道其他任何一个男人是否在撒谎。

镇上的法律规定不准通奸,妻子一旦证明丈夫不忠就应该立刻杀死他,镇上所有妇女都必须严格遵守这项法律。

有一天,镇上的女王宣布,至少有一个丈夫是不忠的。

这是怎么发生的呢?10.在一个重男轻女的国家里,每个家庭都想生男孩,如果他们生的孩子是女孩,就再生一个,直到生下的是男孩为止。

这样的国家,男女比例会是多少?11.如果在高速公路上30分钟内到一辆车开过的几率是0.95,那么在10分钟内看到一辆车开过的几率是多少(假设为常概率条件下)12.如果你看到钟的时间是3:15,那一刻时针和分针的夹角是多少?(肯定不是0度!)13.4个人晚上要穿过一座索桥回到他们的营地。

可惜他们手上只有一支只能再坚持17分钟的手电筒。

通过索桥必须要拿着手电,而且索桥每次只能撑得起两个人的份量。

这四个人过索桥的速度都不一样,第一个走过索桥需要1分钟,第二个2分钟,第三个5分钟,最慢的那个要10分钟。

他们怎样才能在17分钟内全部走过索桥?14.你和朋友参加聚会,包括你们两人在内一共有10个人在场。

你朋友想跟你打赌,说这里每有一个人生日和你相同,你就给他1元,每有一个人生日和你不同,他给你2元。

Google笔试题。

Google笔试题。

Google笔试题。

一、单选1. 80x86中,十进制数-3用16位二进制数表示为?解答:0xFFFD. 数据在计算机里用补码表示,正数的补码为其原码,不变,负数的值为其补码求反加一。

最高位为符号位。

因此,可以这样计算,3减去1,等于2,然后取反,则得到-3的补码。

2. 假定符号-、*、$分别代表减法、乘法和指数运算,且三个运算符优先级顺序是:- 最高,*其次,$最低;运算符运算时为左结合。

请计算3-2*4$1*2$3的值:(A)4096,(B)-61,(C)64,(D)-80,(E)512解答:-优先级最高,表达式从左到右计算,先运算3-2,得到1,然后乘以4,得四。

由于$d的优先级最低,所以接着计算1×2,为2.最后表达式为4$2$3.从左到右计算,为4的2次方,得到16,再3次方,得到4096.3.下列伪代码中,参数是引用传递,结果是?calc(double p, double q, double r){q=q-1.0;r=r+p}main({double a = 2.5, b = 9.0;calc(b-a, a, a);print(a);}(A)1.5 (B)2.5 (C)10.5 (D)8 (E)6.5解答:b-a的结果为6.5,作为一临时变量传进去,因此实际计算的表达式为a = a - 1.0; -> a = 1.5a = a + 6.5; -> a = 1.5 + 6.54、求输出结果:int foo(int x, int y){if(x <=0 || y <= 0) return 1;return 3 * foo(x - 1, y / 2);}printf("%d/n", foo(3, 5));(A)81 (B)27 (C)9 (D)3 (E)16解答:此题考查递归函数的调用,调用栈顺序:foo(3,5) -> 3*foo(2, 2) -> 3*3*foo(1, 1)-> 3 *3*3*f(0,0)foo(0,0) 返回一,因此结果为27.5、下列哪个数据结构在优先队列中被最广泛使用(A)堆 (B)数组 (C)双向链表 (D)图 (E)向量解答:众所周知优先队列的实现是基于堆的。

Google集团笔试经验

Google集团笔试经验

Google集团笔试经验google笔试是没有门槛的。

这样说是因为google根本没有限制笔试的人数,开了n个教室,让n多人参加不过google笔试本身却有门槛,看了题目就知道。

本来想上午写写的,但是,嗯,出于攒人品的目的,还是等到现在才写现在,面试通知已经发过,很显然我又被无视了ok,那也不错,我也没怎么准备这些东西呢,倒不是说我不重视,而是事情太多唔,google笔试多少算是一种经验了。

回来说说昨天的笔试。

题目的量并不大,除了几个单选题,剩下google笔试就是三个编程或算法题。

单选就不说了,考得比较基础,涉及c语言常识、数据结构、文法、操作系统,主要说说大题。

大题虽然题型不一,但都有一个重要特点:考递归。

精确点说,我每一题都用到了递归。

第一个的google(嗯,记的不是很完整):在一棵(排序?)二叉树中搜索指定值,数据结构定义为(唉唉,数据结构的具体名字都不记得了,my god):struct node{node * lnext;node * rnext;int value;};函数定义为(情况同上,啥都记不清了):node * search(node * root, int value){}实现这个search函数。

用递归,经典的树的遍历,pass先。

第二个的google笔试题目:计算tribonaci队列(嗯,九成九记错了那个单词),规则是t(n)= t(n - 1) + t(n - 2) + t(n -3),其中t(0) = t(1) = 1,t(2) = 2。

函数定义:int tribonaci(int n) {}备注,不考虑证整数溢出,尽可能优化算法。

这一题我一看就知道要考什么,很显然的递归定义,但也是很显然的,这里所谓的优化是指不要重复计算。

简单的说,在计算t(n)的时候要用到t(n - 1)、t(n - 2)和t(n - 3)的结果,在计算t(n - 1)的时候也要用到t(n - 2)和t(n - 3)的结果,所以在各项计算的时候必须把以前计算的结果记录下来,去掉重复计算。

谷歌公司智力类笔试题

谷歌公司智力类笔试题

谷歌公司智力类笔试题谷歌公司智力类笔试题1、有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?答:2根香同时点燃,第一根两头都点燃,第二根只点一头,第一根点完的时候是半个小时,接着把第二根两头都点燃,第二根点完的时候就是15分钟,谷歌公司智力类笔试题。

2、一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的'年龄。

请问三个女儿的年龄分别是多少?为什么?答:2,2,9, 1岁不可能3、有三个人去住旅馆,住三间房,每一间房$10元,于是他们一共付给老板$30,第二天,老板觉得三间房只需要$25元就够了于是叫小弟退回$5给三位客人,谁知小弟贪心,只退回每人$1,自己偷偷拿了$2,这样一来便等于那三位客人每人各花了九元,于是三个人一共花了$27,再加上小弟独吞了不$2,总共是$29,资料共享平台《谷歌公司智力类笔试题》(s://..)。

可是当初他们三个人一共付出$30那么还有$1呢?答:没错,三个人付了27块,老板拿了25块,小弟拿了2块4、有两位盲人,他们都各自买了两对黑袜和两对白袜,八对袜了的布质、大小完全一样,而每对袜了都有一张商标纸连着。

两位盲人不小心将八对袜了混在一起。

他们每人怎样才能取回黑袜和白袜各两对呢?答:不知道,还要仔细想想5、有一辆火车以每小时15公里的速度分开洛杉矶直奔纽约,另一辆火车以每小时20公里的速度从纽约开往洛杉矶。

假设有一只鸟,以30公里每小时的速度和两辆火车同时启动,从洛杉矶出发,碰到另一辆车后返回,依次在两辆火车来回飞行,直到两辆火车相遇,请问,这只小鸟飞行了多长间隔?答:记好两车相遇时间,就是鸟飞行时间,乘以其飞行速度就得到飞行间隔。

6、你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中时机?在你的方案中,得到红球的准确几率是多少?答:不知道,还要仔细想想。

google笔试集锦

google笔试集锦

Google笔试集锦选择题+三道算法题选择题没什么难的最后一道考的数据库使用什么存储结构不会做。

算法题第一题没什么好说第二题可破坏一个数组A[0..N-1]的条件下使用最少的内存判断是否存在相同的元素我的做法是堆排序时间O(NlogN) 空间O(1) 复杂度上来看应该最优了第三题已知每个点的父节点,求这棵树的最大独立集用递归求解类似动态规划但是不存在重叠子状态经典算法问题了预处理每个节点的子节点存在一张表里时间O(N)空间O(N)大家做的结果是这样吗?发信站: 饮水思源(2006年10月11日03:06:04 星期三), 站内信件开章明义,我是个废人,上来积攒rp了。

在宣讲会的时候,听旁边的师姐说上海只招两个职位每个职位只招一个人。

现在后悔只选了北京和上海的SWE了。

不过反正……也不指望了。

笔试题目:9道单选+3道问答时间:100分钟我做的是B卷。

单选题:1,求两个二进制数的异或值,基本上学过一点计算机的东西的人都能对的题目。

2,不记得了。

也是不需要思考的题目。

3,大概是如下的函数:int someFunc(int x){if (x == 0)return 0;elsereturn x + someFunc(x - 1);}问这个计算的是什么。

4,不记得了。

不需要思考吧。

5,不记得了。

不需要思考吧。

6,参见2,4,5。

7,似乎需要思考一下。

8,问链表结构和数组相比的优势不包括哪项,包括:插入的时间删除的时间存储空间剩下两个不记得了。

9,如下函数:T(x) = 1 (x <= 1)T(n) = 25 T(n/5) + n^2问T(n)随n的增长。

选项大概是这样的:O(n^2),O(n^2logn)等等的。

问答:1,写两个N*N的矩阵的乘法,给出了C的格式,你可以选择你喜欢的语言去写。

int* multi(int* a1, int* a2, int N){}2,寻找一个单向链表的中项,如果存在两个则返回前一个。

google面试,笔试逻辑题及答案

google面试,笔试逻辑题及答案

谷歌笔试面试逻辑题目,部分答案在最后边。

1.一辆学校班车里面能装多少个高尔夫球?2.你被缩小到只有硬币厚度那么点高(不是压扁,是按比例缩小),然后被扔到一个空的玻璃搅拌器中,搅拌刀片一分钟后就开始转动。

你怎么办?3.要是让你清洗整个西雅图的所有窗子,你会收取多少费用?4.怎么才能识别出电脑的内存堆栈是向上溢出还是向下溢出?5.你要向你8岁的侄子解释什么是数据库,请用三句话完成。

6.时钟的指针一天内会重合几次?7.你需要从A地去B地,但你不知道能不能到,这时该怎么办?8.好比你有一个衣橱,里面塞满了各种衬衫,你会怎么整理这些衬衫,好让你以后找衬衫的时候容易些?9.有个小镇有100对夫妇,每个丈夫都在欺骗他的妻子。

妻子们都无法识破自己丈夫的谎言,但是她们却能知道其他任何一个男人是否在撒谎。

镇上的法律规定不准通奸,妻子一旦证明丈夫不忠就应该立刻杀死他,镇上所有妇女都必须严格遵守这项法律。

有一天,镇上的女王宣布,至少有一个丈夫是不忠的。

这是怎么发生的呢?10.在一个重男轻女的国家里,每个家庭都想生男孩,如果他们生的孩子是女孩,就再生一个,直到生下的是男孩为止。

这样的国家,男女比例会是多少?11.如果在高速公路上30分钟内到一辆车开过的几率是0.95,那么在10分钟内看到一辆车开过的几率是多少(假设为常概率条件下)12.如果你看到钟的时间是3:15,那一刻时针和分针的夹角是多少?(肯定不是0度!)13.4个人晚上要穿过一座索桥回到他们的营地。

可惜他们手上只有一支只能再坚持17分钟的手电筒。

通过索桥必须要拿着手电,而且索桥每次只能撑得起两个人的份量。

这四个人过索桥的速度都不一样,第一个走过索桥需要1分钟,第二个2分钟,第三个5分钟,最慢的那个要10分钟。

他们怎样才能在17分钟内全部走过索桥?14.你和朋友参加聚会,包括你们两人在内一共有10个人在场。

你朋友想跟你打赌,说这里每有一个人生日和你相同,你就给他1元,每有一个人生日和你不同,他给你2元。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

谷歌2013校园招聘笔试题心得(附答案)昨天晚上去蹭了一下Google的招聘笔试。

其实是去打酱油的,主要是为了感受一下Google的出题风格和考试氛围,可以对将来找工作提供些参考。

回来之后本来想回忆一下题目的,结果发现braveheart89大大已经贴出了所有的题而且连选项都一字不差,记忆力真心佩服……以下就根据他写的题目稍微修正一下[1],然后随便说说好了。

(说的也不一定对,欢迎更正。

)考试是第一页需要填写个人信息,包括实习经历、获奖情况、工作地点意向(国内、国外还是两者皆可之类,反正对我无用啦-.-)然后就是一个半小时的答题,全部手写。

1、单项选择题1.1 如果把传输速率定义为单位时间内传送的信息量(以字节计算)多少。

关于一下几种典型的数据传输速率:1.使用USB2.0闪存盘,往USB闪存盘上拷贝文件的数据传输速率2.使用100M以太网,在局域网内拷贝大文件时网络上的数据传输速率3.使用一辆卡车拉1000块单块1TB装满数据的硬盘,以100km/h的速度从上海到天津(100km)一趟所等价的数据传输带宽4.使用电脑播放MP3,电脑的PCI总线到声卡的数据传输速率在通常情况下,关于这几个传输速率的排序正确的是:A.4<1<2<3B.1<4<2<3C.4<1<3<2D.1<4<3<21.2 对以下程序,正确的输出结果是#define SUB(x,y) x-y#define ACCESS_BEFORE(element,offset,value) *SUB(&element, offset) =valueint main(){int array[10]= {1,2,3,4,5,6,7,8,9,10};inti;ACCESS_BEFORE(array[5], 4, 6);printf("array: ");for (i=0; i<10; ++i){printf("%d", array[i]);}printf("\n");return (0);}A.array: 1 6 3 4 5 6 7 8 9 10B.array: 6 2 3 4 5 6 7 8 9 10C.程序可以正确编译连接,但是运行时会崩溃D.程序语法错误,编译不成功1.3 在区间[-2, 2]里任取两个实数,它们的和>1的概率是:A.3/8B.3/16C.9/32D.9/641.4 小组赛,每个小组有5支队伍,互相之间打单循环赛,胜一场3分,平一场1分,输一场不得分,小组前三名出线。

平分抽签。

问一个队最少拿几分就有理论上的出线希望:A.1B.2C.3D.41.5 用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要多长的二进制字符串?A.12B.14C.18D.241.6 10个相同的糖果,分给三个人,每个人至少要得一个。

有多少种不同分法A.33B.34C.35D.361.7 下列程序段,循环体执行次数是:y=2while(y<=8)y=y+y;A.2B.16C.4D.31.8 下面哪种机制可以用来进行进程间通信?A.SocketB.PIPEC.SHARED MEMORYD.以上皆可1.9 下列关于编程优化的说法正确的是:A.使用编译器的优化选项(如-O3)后程序性能一定会获得提高B.循环展开得越多越彻底,程序的性能越好C.寄存器分配能够解决程序中的数据依赖问题D.现代主流C/C++编译器可以对简单的小函数进行自动Iinline1.10 一下程序是用来计算两个非负数之间的最大公约数:longlonggcd(long long x, long long y) {if( y==0) return 0;else return gcd (y, x%y);}我们假设x,y中最大的那个数的长度为n,基本运算时间复杂度为O(1),那么该程序的时间复杂度为:A.O(1)B.O(logn)C.O(n)D.O(n^2)2、程序设计与算法(2.1,2.2为编程题,2.3为算法设计题,只需设计思路和关键步骤伪代码)2.1 写函数,输出前N个素数。

不需要考虑整数溢出问题,也不需要使用大数处理算法。

2.2 长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的swap,请设计并实现排序。

2.3 给定一个原串和目标串,能对源串进行如下操作:1.在给定位置插入一个字符2.替换任意字符3.删除任意字符要求写一个程序,返回最少的操作数,使得源串进行这些操作后等于目标串。

源串和目标串长度都小于2000。

——以下是我根据各种来源总结的参考答案:1.1 AUSB 2.0的理论传输极限是480Mbps[2],但是按照这个速率就没有选项可选了-.-,所以猜测应该认为是普通U盘写数据的6MB/s,即48Mbps;100M以太网的速率就是100Mbps;卡车拉硬盘,1000x1000x8/3600=2222Mbps,这个应该是最快的;MP3在256kbps码率下也平均只有1分钟2MB,所以不会超过0.3Mbps,所以一定是最慢的。

1.2 D这道题大家走出考场后争议非常大。

咱啥也不说,直接进mingw跑一下gcc:gcc提示的错误是“赋值号的左边操作数需要一个左值”。

其原因是调用宏的那句被预处理器替换成了:*&array[5]-4 =6;由于减号比赋值优先级高,因此先处理减号;由于减号返回一个数而不是合法的左值,所以编译报错。

1.3 C这道题我是蒙对的-.- 标准做法是先画出y=1-x的线,上侧阴影部分就是y>1-x,其所占比例为9/32:1.4 B这道题我从A开始凑胜负表,直到B凑出结果就OK了。

1.5 B这道题需要对abcd进行Huffman编码。

首先根据权值建立Huffman树,得到最优编码:a=0, b=10, c=110, d=111然后数一下就行了。

1.6 D这道题我是穷举的orz……一共这么几种情况:118,127,136,145;226,235,244;334;然后有数字重复的算3种排列,不重复的算6种排列,共计4×3+4×6=36种。

1.7 D这题很基本了。

1.8 D一般学过操作系统这门课的都会吧,而且个人觉得D这个选项的出现不符合Google风格。

1.9 D这题其实很好做,因为D肯定是对的,而且ABC的言论太绝对。

但如果一定要给出解释的话……A选项的优化只能针对代码本身,纯系统调用什么的是不会性能提升的(当然也不会下降),B选项我觉得是在并行优化方面,好的编译器可以从循环中发掘并行性,展开之后就不行了,C选项有点说不清。

消除数据依赖主要有两个方法,一种是SSA,即静态单赋值[3],这是通过对变量进行重命名实现的,严格的说应该叫“寄存器重命名”[4]而不是“寄存器分配”;另外一种是调换指令顺序,这种只要不是真相关(写后读,RAW)的话都可以消除掉,也不属于寄存器分配。

所以感觉不应该选这个。

1.10 B求最大公约数用的是辗转相除法(欧几里得算法),所以是O(logn)[5]。

2.1这题比较基本,而且很多企业的笔试都爱考类似的。

主要就是对尝试对数a进行质因数分解,最容易写的就是从2开始一直除到sqrt(a),性能提升一点就从2,3然后除奇数一直到sqrt(a)。

当然还可以优化一下,建立一个动态质数链表,将之前取到的所有质数加入表进行加速。

2.2这题我觉得除了重载一下swap函数然后用传统排序法之外也想不出什么高效的做法了。

而且要代码实现,时间紧迫也不由得你多想。

2.3这题个人觉得是这场笔试唯一拉区分度的题了(所以非科班出身的本人妥妥的死在这道题上),基于动态规划算法。

事实上就是写出LD算法的伪代码,[6]中有详细的描述。

考场里完全对这东东没概念,就随便写了点啥交掉了。

好吧,目送各位进面试的大牛顺利(你们的考验才刚刚开始什么的我会随便乱说吗)[1] 2013 google校园招聘笔试题. braveheart89的专栏./braveheart89/article/details/8074657[2] USB 2.0. 百度百科. /view/460899.htm[3] 编译器后端寄存器分配算法SSA(静态单一赋值法). 专栏./lm2302293/article/details/6791752[4] 寄存器重命名. 维基百科./zh/%E5%AF%84%E5%AD%98%E5%99%A8%E9%87%8D%E5%91%BD%E5%90%8D[5] 欧几里得算法的时间复杂度. 依然的博客./blog/static/16229419320105211170298/[6] 文本比较算法Ⅰ——LD算法. 万仓一黍./grenet/archive/2010/06/01/1748448.html。

相关文档
最新文档