GOOGLE面试题集锦.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GOOGLE面试题集锦

硅谷流行迷题面试  近年来,越来越多的硅谷科技公司开始在面试中提出类似的问题。这些公司感兴趣的并不是正确答案,而是应聘者解决问题的方式和能力。当今的商业世界瞬息万变,企业更需要有独立思考能力的人才,而不仅仅是高智商、高学历的工程师。早在上世纪80年代末,微软就在面试中引入了一些开放式的逻辑问题,例如“波音747有多重?”。微软招聘经理华伦·阿什顿(Warren Ashton)表示:“我们希望通过这一方式考察应聘者的创造力。”  “为什么下水道的盖子是圆的?”,这是阿什顿在面试中最经常问到的一个问题。阿什顿表示,最常见的答案是,“在任何角度下,圆的下水道盖子都不会掉落到下水道中,而方的则不然。”但是,一些人也提供了其它答案,例如“圆的下水道盖子容易从一个地点搬运到另一个”,或者“圆的下水道盖子加工成本较低”。他说:“我们希望应聘者充分发挥自己的思维和想象力,给出更多答案。”  在硅谷高科技公司的面试中,经常会出现这类问题。谷歌前员工马克·简(Mark Jen)表示:“雇主希望了解你在一定数量级之内能否做出准确的预计。”一般来说,优秀的应聘者会做出有根据的推测,而不是计算准确的数字。事实上,面试人员也正是通过考察应聘者估算的方式,来确定最合适的人选。例如,亚马逊就经常在面试中提出这样的问题,“美国有多少个加油站?”,或者“擦遍西雅图所有窗户能挣多少钱?”。  当然,现在的面试远不止估算这么简单。作家、设计顾问布鲁克·埃克尔(Bruce Eckel)经常会让应聘者用程序语言来描述一只小鸡;eBay面试人员经常会提出一个著名的逻辑问题——“强盗分金币”:5名强盗 (A、B、C、D、E) 分100个金币。他们决定从A开始提出分配方案,如果不能获得半数以上的支持,A将被处死,然后由B提出分配方案,依此类推。如果每一名强盗都足够聪明,那么A提出什么样的方案才能保证自己获得最多的金币,而且不会被处死?谷歌走得最远  尽管很多公司都采用了迷题面试,但没有哪家公司像谷歌这样彻底。三年前,谷歌在美国101公路硅谷地段树立了一个醒目的广告牌,上面只有一个复杂的数学问题。如果过往行人提交的答案正确,谷歌就会邀请他访问一个秘密网站,而这个网站上有一道更难的问题。如果答案再次正确,谷歌将邀请他提交个人简历,并到谷歌总部参加面试。  当然,这距离应聘者正式加入谷歌还有很远的距离,至少他还要在面试中回答很多刁钻古怪的问题。其中最常见的一个问题是:假设你的身高缩小至一枚硬币那么大,当然是按比例缩小,密度不变。你被扔进了一个空的玻璃搅拌机里,刀片将于60秒后开始工作,你会怎么办?  并非只有应聘者需要适应这种全新的招聘方式,雇主也同样如此,他们必须面对很多从未遇到过的问题。今年早些时候,LinkedIn创始人雷德· 霍夫曼(Reid Hoffman)开始为自己的公司寻找一位CEO。在这一过程中,他采用了一种全新的方式来查看简历。他并没有将目光锁定在某一个特定的候选者,而是使用 LinkedIn网络查找最合适的人选。(摩尔)?google面试题(一)有一个random number generator,是生成真实的随机数,而不是伪随机数,这个东西会生成几千亿个32位整数,打印出现次数前100的整数。?方法一:由于数的范围已经确定,采用计数排序的方法计算出0-2^31-1间数的出现次数,如下代码所示:?int[] array=new int[2^31-1];?for i=0 to n-1 do {?? array[a[i]]++;?}?时间复杂度0(n),空间复杂度0(n)?接着问题就变成寻找数组array中前100大的数,可以采用类似快速排序的方式,先找第100大的数e的位置l,然后使用快速排序的partion方法重构数组,使得l前面的数都小于e,l后面的数都大于e,如下:?intradomize_select(int[] array, p, r, inti) { // 找第i大的数的位置?? if(p==r){ // 递归出口???? return array[p];?? }?? q=radomize_partion(A,p,r);?? k-q-p+1;?? if(i=k){???? return radomize_select(array,p,q,i);?? }?? else{???? return radomize_select(array,p,q,i-k);?? }?}?时间复杂度0(n),空间复杂度0(1)?void getResult(){?? int l=radomize_select(array, 0, n-1, 100);?? q=partion(l); //快速排序的partion?? for i=q to n-1 {???? 输出 array[

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档