‘壹’ Google的电话面试,发面经,攒人品
Google的电话面试,发面经,攒人品
原定的下午2:00开始,一分钟都没迟到。赞一下Google工作的认真。电话是从google北京
办公室打来的。上来一听是中文,失望了不少。之前连续听了两天NPR News温习口语环境,
现在一看完全用不上了。
上来第一个问题是:谈一下你以前做过的项目。因为我应聘的是google的wireless项目,所
以挑了一个以前做过的微软的移动开发项目说了说。刚简单介绍了一下项目内容,对方就开
始针对刚才我的描述发问。问得基本都是和技术有关的问题,比如我说我们的项目用到了
GPS定位,他就问如何获得准确的GPS定位数据,如何把GPS坐标和二维地图进行一一映射,
如何处理不合情理的数据,如何存储数据更高效。感觉上对方相当善于从我的描述中找到发
问点。所以建议xdjm们介绍自己项目经验时,除非自信是特别能化无为有、自圆其说、口才
惊人的那种,否则一定要挑自己最熟悉的项目介绍。
第二个问题是编程常识题:C语言中分配内存有几种方式。这个不多说了,仔细查查书就能
知道。我谨慎的答一种是分配在堆里一种分配在栈里。达人不要笑话欧。
第三个问题是算法设计题:一张白纸上画了N条直线,用一种时间复杂度最低的方法算出这
些直线一共有多少个交点。个人感觉以后在面试技术类职务之前一定要多看看算法题,答不
上来真的好糗。我一开始想了一种最直接的复杂度为O(n^2)的,被鄙视说复杂度太高,问还
能不能把复杂度降下来。于是我开始绞尽脑汁的想。大概20分钟时间都花在这道题上了,中
能不能把复杂度降下来。于是我开始绞尽脑汁的想。大概20分钟时间都花在这道题上了,中
间被对方提示和纠正了两三回,最后还是没完整的答完,只好进行到下一道题。(真后悔之
前没主攻一下算法部分)
第四个问题还是算法题:有个MxN的迷宫,一个人站在迷宫的左上角,出口在右下角。这个
人每走一步只能向下一步或者向右一步,不能向左或后退。问这个人从入口到出口一共有多
少种不同的走法。这题相对简单一点儿,我答上来了。
最后是提问阶段,我提了一个技术层面的问题和另一个Google产品定位上的问题,对方很耐
心的给予了解答。
整个电面持续了57分钟。个人感觉那个求交点个数的答得不好,没有给出正确答案。以后应
该多看看算法部分,要不然就别指望进Google混了。但愿自己和Google的缘分不会到此终结
,特发此面经以攒rp。
挂上电话后的心情是好像弄到了五味瓶,各种情绪汇集在一起。平日里自己觉得自己挺优秀
的,但是突然感觉有种被鄙视了的感觉。也许以前的自我感觉良好都是蒙在眼前的幻觉,真
正的被鄙视的感觉才是真实的。听着dido的thank you写完此?
第三个问题是算法设计题:一张白纸上画了N条直线,用一种时间复杂度最低的方法算出这
些直线一共有多少个交点。个人感觉以后在面试技术类职务之前一定要多看看算法题,答不
上来真的好糗。我一开始想了一种最直接的`复杂度为O(n^2)的,被鄙视说复杂度太高,问还
能不能把复杂度降下来。于是我开始绞尽脑汁的想。大概20分钟时间都花在这道题上了,中
能不能把复杂度降下来。于是我开始绞尽脑汁的想。大概20分钟时间都花在这道题上了,中
间被对方提示和纠正了两三回,最后还是没完整的答完,只好进行到下一道题。(真后悔之
前没主攻一下算法部分)
第四个问题还是算法题:有个MxN的迷宫,一个人站在迷宫的左上角,出口在右下角。这个
人每走一步只能向下一步或者向右一步,不能向左或后退。问这个人从入口到出口一共有多
少种不同的走法。这题相对简单一点儿,我答上来了。
最后是提问阶段,我提了一个技术层面的问题和另一个Google产品定位上的问题,对方很耐
心的给予了解答。
整个电面持续了57分钟。个人感觉那个求交点个数的答得不好,没有给出正确答案。以后应
该多看看算法部分,要不然就别指望进Google混了。但愿自己和Google的缘分不会到此终结
,特发此面经以攒rp。
挂上电话后的心情是好像弄到了五味瓶,各种情绪汇集在一起。平日里自己觉得自己挺优秀
的,但是突然感觉有种被鄙视了的感觉。也许以前的自我感觉良好都是蒙在眼前的幻觉,真
正的被鄙视的感觉才是真实的。听着dido的thank you写完此文,希望自己能够重新找回自
信,开拓出属于自己的一片天空。 ;
‘贰’ 面试会出哪些经典算法题
如下:
1、排序算法∶快速排序、归并排序、计数排序
2、搜索算法∶回溯、递归、剪枝技巧
3、图论∶最短路、最小生成树、网络流建模
4、动态规划:背包问题、最长子序列、计数问题
5、基础技巧:分治、倍增、二分、贪心
6、数组与链表:单/双向链表、跳舞链
7、栈与队列
8、树与图:最近公共祖先、并查集
9、哈希表
10、堆:大/小根堆、可并堆
11、字符串∶字典树、后缀树
算法简介:
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。
形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,并在其后尝试定义有效计算性或者有效方法中成形。
这些尝试包括库尔特·哥德尔、Jacques Herbrand和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的递归函数,阿隆佐·邱奇于1936年提出的λ演算,1936年Emil Leon Post的Formulation 1和艾伦·图灵1937年提出的图灵机。即使在当前,依然常有直觉想法难以定义为形式化算法的情况。