跳至主要内容

发一批失败的面经


http://www.mitbbs.com//article_t/JobHunting/33131335.html

发信人: wodexiaomaji (wodexiaomaji), 信区: JobHunting
标  题: 发一批失败的面经
发信站: BBS 未名空间站 (Thu Jan 28 00:03:18 2016, 美东)

Edited:更新了我的一些答案,欢迎讨论
=====================


背景:CS PhD + 1.5 years. 非CS行业的一个小公司骑驴找马。大概准备了七八个月的
时间吧,晚上回来陪娃睡了然后自己刷题。很不幸,还是全挂了。另外很多大公司现在
也不招opt身份的非new grad。FLA都没有给我面试。有时候想想,大概这种水平的CS
PhD就我一个了吧(呵呵)。还是喜欢写程序的,可是越来越觉得自己似乎并没有这方
面的天分。骑的驴也没积累到什么CS的经验,做了很多business相关的东西。感觉在这
里待得时间越久,自己的career荒废的越多。而且有了几年工作经验之后就会被问很多
design相关的东西,可是我的实际工作中也没涉及多少。用的也是那套软轮。从当年的
认为只要自己努力什么都能做到的少年,慢慢变成了如今已经习惯了生活会经常跟我开
玩笑的准大叔。身份也没有。PTO也差不多用光(每次都要从东海岸飞西海岸,然后面
试当晚红眼飞回来上班)。娃们还嗷嗷待哺。总是想不通,到底是哪一步走错了,才与
其他当初一起上学的小伙伴们的差距越来越大。不过我在帮助国人方面,问心无愧。只
要经过我手的国人来面试我们公司,我都给过了。 牢骚发了不老少,下面回归正题吧
。希望我的经历能对别人有用。这也算是对自己失败的骑驴找马的一个总结吧。


1. 打车公司
Phone:
Add two array-represented integers
Add two string-represented integers

Onsite:
How to determine which cars should show up around a particular user in the
map? 当一个用户打开app,地图上会显示他周围的车。后台是如何设计的只显示用户周
围的几辆车。面试前我看了他们所有的tech blog,知道他们用Google S2,然后就往这
方面扯了。说可以把地图用S2切分成几块,只显示用户所在cell周围cell里面的汽车。
还有如何估算车辆到达用户所需要的时间。

有一系列的events不断流进来,比如说"用户A刚完成了一个trip","用户B刚完成了
一个trip"。现在有一些个奖励,比如完成了头10个trips会达成一个奖励。然后完成
50个trips会达成一个奖励。如何写代码来实现这个。类似于游戏里练级杀怪达成成就
之类的。最开始我没搞明白题意,后来花了些时间搞明白之后给了个算法,面试官不太
满意。

具体的题目记不太清了。就记得要用recursive的办法不断比较两个string的
substrings。貌似是判断两个string的pattern是不是一样。比如AABBAA和EEFFEE相同
,但是AABBAA和EEFFGG不同。

然后貌似是bar raiser来问我简历里project的问题。Supply engineering的头儿。

最后是manager来问我很多behavior的questions。

2. 鸟叫公司
面的是他们刚收购不久的一个组(2015年4月份收购的),专门帮大的购物网站来bid广
告的。面试的流程还是他们组自己定的。这家面试很有特点,onsite的时候假设你第一
轮就fail了,当时就扫地出门。

Phone:
给你一个grid,这里面有些地方是1有些地方是0. 写一个方程void dilate(int[][]
grid, int k),把是1的地方周围k个cell全给置为1. 其实就是放大一个图像。要求O(n
)的复杂度。当时没想出来,面试完了之后才知道怎么做。

Onsite:
提前给了一段TicTacToe game的代码,让你指出哪里不好,如何改写。我就只是用了OO
design的一些东西来改写代码,结果去了才知道人家想要做成一个online gaming的系
统,还要涉及scalable system的东西。真的是感觉当场直接被艹翻了。面完第一轮吃
了个午饭就跟我thank you了。我飞了10几个小时就为了这1小时的面试。飞机是晚上11
点的。然后自己拖着行李跑去了金门大桥,吹了一下午的海风,看着远处的三番城,心
里真的是万马奔腾。这个地方当初实习的时候来过,以后,可能再也不会回来了。

这里尤其要吐槽的是三番downtown有一家貌似是泰国口味的餐馆,里面用具都还挺特别
的,筷子什么的都放在类似于以前农村刷牙缸的那种搪瓷杯里面,每道菜都挺贵。那个
服务员不断给我推荐一个泰式风味的beef brisket,说这个tastes really good。端上
来,尼玛,黑乎乎的,而且非常咸!简直是黑暗料理!我记得那一盆的价格是$38左右
。不管是google还是yelp上review竟然还不差!也不知道是我点错了还是怎么着,尼玛
啊,是我来美国吃过最坑的一顿饭!谁知道那个餐馆叫什么?

3. 靠保险挣钱的HR软件公司
Phone:
那天实在是白天工作太累了,晚上下了班回家累成狗了。貌似是国人打电话过来的。核
心就是排序一个array,每个element是一个class。我想直接用Java的排序,然后
customize comparator,结果忘记语法怎么写了,死活我程序编译通不过,豪取了大部
分时间。最后好歹编译通过了也运行出来了,最后剩下可能5分钟还是10分钟吧,面试
官问了我一个followup,记得好像是要save space还是怎么着的,核心的idea是得手动
写quicksort。那天实在是太累了,没完成。不出所料,挂了。

4. 在线视频服务的公司(名字是中文拼音过来的)
OA:
打印Company relationship hierarchy

Phone:
用到了stack来parse XML document
LRU cache

Onsite:
1). 某个电影每一秒会有好几次view。实现AddViewEvent(),which is to be called
by the client. 实现getLastMinCounts(); getLast10Counts(); getLast60Counts()
返回过去一分钟/10分钟/60分钟内的view数。
2). Insert ads given M slots and gap-distance of N。比如M=3, N=1,有如下情
况- - -, x - -, - x -, - - x, x – x。要求返回一共有多少种情况。X表示可以投
放广告的位置。
3). Design一个分布式的ATM system,有data center,有很多个ATM,如何scale。
4). Explain your past project and design box/dropbox file sharing system。核
心的部分是你在一台机器上保存了一个文件,当你登陆另外一台机器的时候,如何让这
个文件出现在那台机器上。

5. 狗家西雅图
Phone:
Validate parenthesis. 好多个括号组成的一个string,判断是不是valid的。用stack
解决。
Remove target element in a linked list.

Onsite:
1). Check if a tree is symmetric. 这个LC上有
2). Find the kth smallest element in a 2D sorted grid。 每一行是sorted的,每
一列也是sorted。这个其实不是用quickselect的变种,而是类似于BFS,从左上角开始
,每次添加进一个数字之后,下面一个数字只要考虑当前选中集合周围的cell即可,类
似于保持个wavefront。比如最小的是左上角的,第二小的是左上角的某个邻居,然后
第三小的是上一步选中的那个数字的周围某个cell。可以用minHeap instead of queue
来做BFS,因为每次从queue里要取出数字最小的。

3). Difference between abstract and interface in Java. 我提到一个可以有
default的implementation,另外一个不能,必须implement所有methods。但是面试官
貌似是想知道compiler level他们俩有什么区别,以及什么时候用哪个。
4). Find the longest path that is composed of consecutive numbers in a tree.
一个valid的path是比如3-4-5-6。顺序不要紧,但是path上面的数字得连续。这个我
是用recursion做的,每次访问children的时候把当前的list作为一个参数传进去,如
果下一个child的root也是能跟这个list连续起来,就继续,否则的话就把当前list存
到一个global的result list里,然后清空这个temp list,把当前child的root加进去
,继续recursion。

5). Parse XML node tree and decide if two docs contain the same plain text。
比如<html>hello</html>和<html><a>h</a><b>e</b>llo</html>就是相等的。先设计
数据结构,然后写代码。数据结构就是设计个node,里面有个标志表示这个是string
node还是tag node。这个xml文档可以用树来表示,所有的string node其实都是叶子节
点。所以只要做个inorder traversal然后打印出来叶子节点的string即可(当然,如
果叶子是tag node就不打印)。
6). Given a windows size N and new numbers keep coming in. Every once in a
while, getAvg(startIndex) is called, which returns the average of the N
numbers starting from startIndex. 设计数据结构并写代码。这个取决于哪个方程调
用的更多,如果是getAvg调用的更频繁,那么就keep一个currentWindowSum在这个
class里,每次加入element的时候,减掉window尾巴的数,加上这个新加入的数,计算
个avg然后存起来。调用getAvg的时候返回这个数即可。如果是addElement调用的更频
繁,那么就暴力存起来所有数,然后在另外个thread慢慢计算各个位置的avg,把结果
存起来。这个题是不是类似于top k in a stream?

7). Talked about my PhD research
8). Wildcard matching

9). Design candy crush; initialize MxN board so that no 3 same colors in a
row/col. And there should be at least one valid move the user can start with
.这个我给了个思路,代码写完才发现有bug。基本就是我每次放一个candy就去检查它
左面两个和上面两个都是什么candy,保证没有三个颜色一样的在一起。然后第二步是
把所有可能的4个糖组合起来的形状(就是类似于"凸"的形状,只不过朝向不一样)
放在一个list里,然后在这个"凸"里标记好颜色,比如下面这个:
1
2 1
1
然后再有一个list存放各种可能的Pair<candy,candy>,然后把这些shapeList和
candyColorList排列组合,相当于给shape着色,1的地方都用同样的色,2的地方用同
样的色。然后把着了色的shape随机找个位置放进grid。但是这个方法有个bug,不难发
现吧……


--
※ 修改:·wodexiaomaji 於 Jan 28 10:38:22 2016 修改本文·[FROM: 216.]

评论

此博客中的热门博文

记者探访H&M实体店,店员:我们也爱国,希望明天就关门

http://www.mitbbs.com/article_t/ChinaNews/32684337.html 发信人: jiuna (), 信区: ChinaNews 标  题: 记者探访H&M实体店,店员:我们也爱国,希望明天就关门 发信站: BBS 未名空间站 (Thu Mar 25 02:55:55 2021, 美东) 3月25日中午,《环球时报》记者走访了北京市三里屯核心商区,探访新疆棉事件对H&M 及Nike等品牌实体店的影响。记者发现,在整整占据了三层的北京最大的H&M店之一的 店铺内,顾客稀少,门可罗雀,一些路人进店挑选后也选择不购买其产品即离开。 "看到了H&M和Nike的声明之后,近期不会再购买他们的产品了。既然想在中国做生意 ,还侮辱中国人,那中国人肯定不会支持,"一位路人在接受《环球时报》采访时表示 。"抵制他们的产品对我们并不会产生什么影响,因为替代产品有很多。国内很多品牌 都有很好的设计和质量,大多数时间也都在网上逛淘宝,样式和质量都比H&M好很多, "一位姓赵的北京居民表示。 在接受采访时,一些路人表示,除非H&M展现出道歉的诚意,否则将来也不会再选择这 个品牌。 位于上海某繁华商业街的一家HM店,今天门口有保安值守,店员十分警戒,不让记者拍 摄。两名店员对《环球时报》记者表示他们也希望明天就关店,也不希望发生这样的事 情,他们也是爱国的,但他们只是店员,希望得到记者理解。 王先生是一位在上海南京西路附近上班的打工族,由于听到关于HM的消息,他特地在午 休时间来HM店面转转。王先生告诉记者,"作为一家大公司应该吸取经验教训,在中国 做生意,想赚中国人的钱,就更应该尊重中国人民的感情。" 王先生告诉记者,中国老百姓应该拿出一点实际行动,给这些国外公司一些警告以及反 馈信息。王先生说希望这个事件能给更多的类似企业传递更多的信息,中国人民欢迎外 企来做生意,但是前提一定是秉持公平公正的原则,尊重中国人民的感情。 -- ...

分享一下在ICC工作的经验,以及contractor行业的注意事项。

http://www.mitbbs.com/article_t/JobHunting/33509585.html 发信人: poyang (), 信区: JobHunting 标  题: 分享一下在ICC工作的经验,以及contractor行业的注意事项。 发信站: BBS 未名空间站 (Fri May 22 02:28:24 2020, 美东) 最近由于疫情很多new grad同学没法上岸,很多一线大厂更是lay off出来一批大神, new grad的简历在hr眼里更是没法看了。所以很多同学都在考虑去ICC苟住身份,楼主 作为一个在icc工作了一年多的人,写下这篇帖子介绍一下ICC里的一些情况,希望在这 个非常时期帮助到各位还在找工作的同学。 1. 什么是ICC,ICC运作模式是怎么样的? ICC是India Consulting Company 的简称主要从事科技软件行业的外包业务。现在信息 时代每个行业都要像数字化方面转型,特别是大型企业。但除了一些大型科技公司,需 要大量稳定的Full time SDE。市场上大部分的传统行业包括医疗,金融, 通信,零售 等行业也需要大量技术支持和销售业务转型,所以也需要大量的码农。但为了维持公司 (client)的灵活性,所以只招收contractor(合同工). 这样可以简化招聘流程,不需要 承担contractor的身份问题,也可以随时进行人员精简,比如现在项目结束client可以 随时开除目前的合同工并且不给任何补助,也不需要给合同工任何福利。 一般来说Client公司不能直接到市场上招contractor,需要通过第三方公司(vendor) 来 招聘合同工,vendor手上握有大量client的招聘资源,但是手上不一定有很多 candidate 来应聘这些岗位。所以就会把资源放给别的公司(比如ICC)来收取一定的 提成。正常情况下大部分的公司都会给合同工$60~$90 一小时的rate, 但会被vendor抽 掉一部分,再被icc抽掉一部分,你能拿到手可能就只剩下$40~$70一小时。这个抽成具 体取决于icc和vend...

贡献一个485的详细清单,希望对大家有帮助

http://www.mitbbs.com/article_t/Immigration/33151393.html 发信人: gsu (niuer), 信区: Immigration 标  题: 贡献一个485的详细清单,希望对大家有帮助! 发信站: BBS 未名空间站 (Sat Jan 18 12:06:21 2014, 美东) 我们是一家三口,小孩小于14岁,签证都是从J1-waiver-H1B or H4, 希望对和我一样 情况的递交485时有所帮助,在必要时根据自己的情况调整。 主申请人: January 18, 2014 USCIS Texas Service Center 4141 North St. Augustine Road Dallas, TX 75227 Re:  Form I-485, Application to Adjust Status          Form I-765, Application for Employment Authorization          Form I-131, Application for Advance Parole        Applicant: **** (Primary Applicant) Dear Immigration Officer: I am filing Application to Adjust Status based on my approval for Form I-140 under classification 203(b)(1)(A) with receipt number **** My current status is H1B. Enclosed please for filing in the above referenced matter the followin...