G被锯,电/店面面经# JobHunting - 待字闺中
s*i
1 楼
背景:C++,本科数学,研究生改CS,偏Graphics方向
电面一轮,上来随便聊几句项目,然后问了一个C++基础,什么是pure virtual
function。之后做题,2维平面的一堆点,假设有一个在坐标原点的viewport,任给
range(eg: 30度), 问什么角度viewport可包含最多的点。我说先把点转成极坐标,然
后sort by angle, 然后再按点search。他问我search什么复杂度?我说binary search
, nlogn。他说可以做到linear,我想了一会没想到怎么做,他说那你写吧。然后就开
是写代码,发现边界的时候不太好处理,基本写废了,就差没拍桌子了...折腾时间差
不多了,人说就这样吧,有啥问题不?我问他linear的算法是啥,他说window sweep.
感觉不是很好,以为绝对挂了,结果recruiter打电话说表现很好,来onsite吧...于是
约了几周后onsite。
onsite一共5轮,3轮考基础+算法,1轮考test, 1轮考design。中午有个日本人带着吃
了个汉堡,随便聊了几句。每轮过后会留出几分钟让你问问题。比较遗憾的是3轮算法
考我的都是三哥,其他两轮是白人,面试的那个大楼基本没看到国人...
先说3轮3哥面的。感觉3哥给我的题比网上某些大牛onsite拿到的题容易很多,看来G可
能会根据背景按方抓药...所以Onsite如果感觉题目不是很难可能不是啥好事,可能狗
觉得你背景比较一般(虽然也是事实)。可能因为我有数学背景,3哥问了一些和数学
相关的非编程的题目。比如1.给一个光线的入射角和平面法向,怎么求反射光方向; 2.
给一堆采集自某物体表面的3维点,怎么求物体表面在某点法向; 3.估计在某个固定的
level, 多少张图像可以铺满整个Google earch, 怎么压缩存储等。编程的题目 1.
quadtree intersection, 跟本版某牛面经里一模一样,就不重复了。2. transpose an
image。 3. 假设有一个计数器,每秒会产生一个整数(比如,某页面一秒内的访问次
数), 假设已经有函数 getTimer() 返回当前时间,设计数据结构可以实现
getCountLastMin(),也就是最近的一分钟内时间的访问量;以及insert(int n), 即
当前生成整数n。
3哥的题目感觉不是很难,数学题基本都秒掉了,编程题思路经过事后确认都是对的,
第二题实现的时候有点bug。感觉知道怎么做跟写出bug free的代码还是两码事,练的
还是不够。3哥的这几轮整体感觉不错,使我一度错觉以为有戏...
考test的那轮给了一道题,给定一个文件名,可能很长很长,网页上有一个定长的
window(如50个字符),怎么显示可以给用户最多的信息。前一半时间在讨论怎么实现,
各种思路。然后实现一个简单版本,最后写unit tests. 以为平时在公司也常写unit
tests,虽然没有特别准备,感觉也不是十分狼狈。这轮感觉中等吧。
考design那轮比较悲催。interviewer是web出身,我web经验基本为0。假设有一个显示
消息list的网页(如mitbbs的某版面)他给了我一堆api,对应网页的各种功能,问怎么
扩充API实现新功能:可以给消息加标签。这轮感觉答得比较被动,跟interviewer也不
是很来电,不是很好。
两周后收到消息说挂了,小失落了一下下。总结:
1. G电面比较水。
2. 感觉G很看中学历,没记错的话,3个三哥都是phd出身。
3. 题目不是非常难,低于leetcode的平均水平,甚至感觉低于其他G面经的题目水平,
不知什么原因。
4. 除了算法,一定要准备test和design.这个应该比算法好准备,但是像我这样没准备
就上阵,基本不会有啥好结果。
5. G水确实深,看版上那么多大牛都挂了,我也基本do my best了,但还是够不着他家
的bar。
6. 3个3哥感觉级别不是很高,其他两个感觉是senior,特别是最后考design的那个,
所以那两轮可能相对更重要,但是不幸表现不佳。
电面一轮,上来随便聊几句项目,然后问了一个C++基础,什么是pure virtual
function。之后做题,2维平面的一堆点,假设有一个在坐标原点的viewport,任给
range(eg: 30度), 问什么角度viewport可包含最多的点。我说先把点转成极坐标,然
后sort by angle, 然后再按点search。他问我search什么复杂度?我说binary search
, nlogn。他说可以做到linear,我想了一会没想到怎么做,他说那你写吧。然后就开
是写代码,发现边界的时候不太好处理,基本写废了,就差没拍桌子了...折腾时间差
不多了,人说就这样吧,有啥问题不?我问他linear的算法是啥,他说window sweep.
感觉不是很好,以为绝对挂了,结果recruiter打电话说表现很好,来onsite吧...于是
约了几周后onsite。
onsite一共5轮,3轮考基础+算法,1轮考test, 1轮考design。中午有个日本人带着吃
了个汉堡,随便聊了几句。每轮过后会留出几分钟让你问问题。比较遗憾的是3轮算法
考我的都是三哥,其他两轮是白人,面试的那个大楼基本没看到国人...
先说3轮3哥面的。感觉3哥给我的题比网上某些大牛onsite拿到的题容易很多,看来G可
能会根据背景按方抓药...所以Onsite如果感觉题目不是很难可能不是啥好事,可能狗
觉得你背景比较一般(虽然也是事实)。可能因为我有数学背景,3哥问了一些和数学
相关的非编程的题目。比如1.给一个光线的入射角和平面法向,怎么求反射光方向; 2.
给一堆采集自某物体表面的3维点,怎么求物体表面在某点法向; 3.估计在某个固定的
level, 多少张图像可以铺满整个Google earch, 怎么压缩存储等。编程的题目 1.
quadtree intersection, 跟本版某牛面经里一模一样,就不重复了。2. transpose an
image。 3. 假设有一个计数器,每秒会产生一个整数(比如,某页面一秒内的访问次
数), 假设已经有函数 getTimer() 返回当前时间,设计数据结构可以实现
getCountLastMin(),也就是最近的一分钟内时间的访问量;以及insert(int n), 即
当前生成整数n。
3哥的题目感觉不是很难,数学题基本都秒掉了,编程题思路经过事后确认都是对的,
第二题实现的时候有点bug。感觉知道怎么做跟写出bug free的代码还是两码事,练的
还是不够。3哥的这几轮整体感觉不错,使我一度错觉以为有戏...
考test的那轮给了一道题,给定一个文件名,可能很长很长,网页上有一个定长的
window(如50个字符),怎么显示可以给用户最多的信息。前一半时间在讨论怎么实现,
各种思路。然后实现一个简单版本,最后写unit tests. 以为平时在公司也常写unit
tests,虽然没有特别准备,感觉也不是十分狼狈。这轮感觉中等吧。
考design那轮比较悲催。interviewer是web出身,我web经验基本为0。假设有一个显示
消息list的网页(如mitbbs的某版面)他给了我一堆api,对应网页的各种功能,问怎么
扩充API实现新功能:可以给消息加标签。这轮感觉答得比较被动,跟interviewer也不
是很来电,不是很好。
两周后收到消息说挂了,小失落了一下下。总结:
1. G电面比较水。
2. 感觉G很看中学历,没记错的话,3个三哥都是phd出身。
3. 题目不是非常难,低于leetcode的平均水平,甚至感觉低于其他G面经的题目水平,
不知什么原因。
4. 除了算法,一定要准备test和design.这个应该比算法好准备,但是像我这样没准备
就上阵,基本不会有啥好结果。
5. G水确实深,看版上那么多大牛都挂了,我也基本do my best了,但还是够不着他家
的bar。
6. 3个3哥感觉级别不是很高,其他两个感觉是senior,特别是最后考design的那个,
所以那两轮可能相对更重要,但是不幸表现不佳。