《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 917|回复: 13
收起左侧

阅后即焚onsite跪经

[复制链接] |试试Instant~ |关注本帖
justin 发表于 2017-9-15 02:56:31 | 显示全部楼层 |阅读模式

2017(7-9月) 码农类 硕士 全职@Snapchat - 内推 - Onsite |Fail在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
onsite整体体验不错,公司就在海滩边上,都是租的公寓楼当办公楼,大家真的是有那种把公司当家的感觉。. 鍥磋鎴戜滑@1point 3 acres

第一轮,是国人姐姐,这轮一点coding都没有,从头到尾就在聊我以前的工作项目,貌似我之前的项目和国人姐姐采用的是两种不同的方法来解决同一个问题,所以国人姐姐一直很不开心,说你这方法肯定不work的,我的方法才work。。。但是整个公司的tech stack也不是我选的。。。而且machine learning有那么多种方法,也不能总是说某种方法一定优于另一种吧。。。总之面得很郁闷。明明是个面试,但是整整一个小时就在全方位的论证,说我之前公司的做法完全不work。。。我觉得这轮凶多吉少了。。。. 1point3acres.com/bbs

第二轮,是个看起来很凶的三哥哥,一开始就来质疑我的software engineer的身份,说machine learning那些东西是data scientist搞的,我们software engineer是搭建infrastructure的,我只能顺着他的话说,我的工作经验也有build data pipeline。然后他出了一道coding,就是实现unix中的diff function,输出两个file的diff。我从一开始就保持了很好的communication,对input问了几个很不错的问题,要求了clarification,然后说我们用一个hashmap就行了,每一个地方很清楚的指出了corner case,和可能可以优化的地方。三哥哥慢慢地就开始开心起来,followup是如果硬盘空间不够怎么办,我说那就是先external merge sort two files,然后再双指针扫。然后这个时候三哥才让我打开笔记本写代码,我本来还以为要实现external merge sort的那种最优算法,但是三哥摆摆手说,我们别管followup的吧,你就用hashmap那个方法。写完之后,我又问了三哥几个跟组里有关的问题,三哥很开心,握了握我的手说,good luck with the rest of interviews, hope to see you again。这轮应该是个strong hire,毕竟三哥真要黑我,直接让我实现followup就行了,现场写external merge sort肯定要跪的,没必要让我用hashmap成功写完代码。。。

第三轮,lunch interview,是个国人小哥哥,本来是behavior question的,但是国人小哥哥不爱说话,都是我在聊。后来吃完饭还有时间,国人小哥给我出了一道system design,基本就是如何设计kafka streaming。。。我照自己的工作经验设计了一点点,后来小哥又说,我就是随便问下的,这轮只是behavior interview,刚才不算的,说你不要担心我这轮,其他面试coding好就行。
. visit 1point3acres.com for more.
第四轮,中东大哥,非常和蔼可亲的那种manager。题目是给一系列的tasks按顺序执行(a, b, c, a, f, a, b, a),同名的tasks有一个冷却时间k,输出执行需要的最短时间。其实就是sliding window problem,maintain一个queue和一个hashmap。讲道理有点像LRU cache的。。。我走狗屎运,有些edge case,是大于还是大于等于都还没搞清,但是居然跑一遍就跑通了。followup1是如果tasks可以不按顺序执行的话,如果安排使得时间最短。followup2是如果有多台机器呢?我也忘了我答了什么了,反正中东大哥挥挥手说,that's perfect, i have no other questions.然后我就开始问问题了,中间大家还打开了snap,商量要加什么feature。至少是个hire
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
第五轮,白人小哥,边上是很可爱的中国妹子shadow,听口音是大陆的。题目就是parse xml tree,但是只给你一个getToken接口,每call一次能获得一个token,一个token可能是begin/text/end,比如<a>, 或者text,或者</a>,最后输出一个tree。上来直接讲了思路说用一个stack,用iterative的思路,每次碰到end tag,就在stack中往前找对应的begin tag。小哥纠结了下说行吧,然后又说待会还有followup我不知道这能不能在followup中work。。。但是我又不能直接问小哥想要什么,就想着至少解决这个问题。很快就把code写完,。然后小哥给的followup是现在只给getChar了,每call一次只能获得一个char,我说那就用getChar来实现getToken就行了,这样就不用reinvent the wheels,小哥纠结了下说行吧,那你实现下。然后迅速写完,不过有一个地方粗心漏了一个edge case,被小哥指出来了,然后迅速修正。虽然还剩不少时间,但是小哥说我没别的问题了,你呢?我因为太累了,就问了下小哥是什么组做什么的就结束了。。。没来得及问中国妹子问题就结束了诶。。。这轮面不好说,虽然我把题都做出来了,但是我后来回去想了想,终于明白小哥为什么一直在纠结,因为他的参考答案肯定是recursive solution,而我实现的是iterative。但是他又不能跟我明说,要不然就成hint了。。还是我猜面试官的心思猜得不够透,没有实现面试官想要的那种方法。。。下回记得这个教训。

-google 1point3acres后来听hr的意思,说面试官都认为我对snap非常有passion也很有potential,但是有一轮problem solving跪了,但是不能给我feedback,猜想是国人姐姐那一轮和白人小哥那一轮,不知道是哪一轮挂了。我觉得挺难受的,因为这是我觉得发挥最好的onsite,但却是第一次跪的onsite。我的发挥比我平时在家自己做题都还要好了。。。不过snap确实bar挺高的,可能就有那么一点点不如意,面试官就say no了吧,毕竟竞争那么激烈,还有很多其他优秀的candidates。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷


补充内容 (2017-9-14 19:10):
第四轮,每个任务执行需要1秒,冷却时间k为整数。冷却时间意味着,a执行完后,下一个a要执行至少得等到k秒以后了。

评分

5

查看全部评分

lzyyxtk 发表于 2017-9-15 04:25:22 | 显示全部楼层
patpat 楼主。就当积累了珍贵的经验吧!
. from: 1point3acres.com/bbs
我也要去Snap onsite了,但是邮件来得很奇怪,说的是一个什么weekend event,并没有提是onsite,我最开始还没回想说别跑一趟。。后来再来联系才知道周日是要面试的。我问是technical还是behavioral的也没说。楼主也是这个流程吗?
回复 支持 反对

使用道具 举报

 楼主| justin 发表于 2017-9-15 06:20:38 | 显示全部楼层
lzyyxtk 发表于 2017-9-14 15:25
patpat 楼主。就当积累了珍贵的经验吧!
. From 1point 3acres bbs
我也要去Snap onsite了,但是邮件来得很奇怪,说的是一个什么we ...

我周五面的。weekend event没听说过,你跟hr确认下,如果是面试的话,hr会给你发面试名单的

回复 支持 反对

使用道具 举报

xiaobailong 发表于 2017-9-15 07:18:35 | 显示全部楼层
心疼一下楼主先,已经很不错了..
楼主讲的好仔细,但是问题还是没太懂,我问一下,您要是心情还好,就帮忙回答一下吧..
第二轮请问有原题吗?LeetCode上有吗?如果没有的话,自己在家怎么练习呢?onsite的时候是面试官给test case吗?自己要处理输入输出吗?. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
第四轮那道LRU感觉也蛮奇怪的啊..每个任务需要的执行时间都是1吗?还是不一样啊?
第五轮请问有原题吗?还有,我为什么听说可以向面试官确认一下这种方法是不是他想要你写的方法啊?感觉面试官说一句用recursive的方法应该也不能就算大hint吧...还没有到大公司onsite过,所以要是问题很幼稚,请谅解...

补充内容 (2017-9-15 07:21):
请问第五轮是这道题吗?
https://discuss.leetcode.com/topic/52519/xml-tree-presentation
回复 支持 反对

使用道具 举报

 楼主| justin 发表于 2017-9-15 08:06:05 | 显示全部楼层
xiaobailong 发表于 2017-9-14 18:18
心疼一下楼主先,已经很不错了..
. 鍥磋鎴戜滑@1point 3 acres楼主讲的好仔细,但是问题还是没太懂,我问一下,您要是心情还好,就帮忙 ...

心情其实还好啦,因为我有其它同级别的offer了:)

第二轮我查了下,是利口389。test case全靠自己想,输入输出全靠自己定义,重要是prove your solution works。就好比我的两个file我直接用两个list来表示(跟面试官商量后),要不然处理文件的输入输出太麻烦了。 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

第四轮,每个任务执行确实是1秒,我忘了说了。.1point3acres缃

第五轮就是你给的链接,但有一个额外条件是只有一个接口函数getToken,而不是给你整个token list。以及还有一个followup:getChar。getChar很简单的,<a>text</a>,看到<,之前stack中累积的字符合起来就是text,看到>之前stack累积起来的字符就是tag(注意判断begin和end tag)

回复 支持 反对

使用道具 举报

 楼主| justin 发表于 2017-9-15 08:11:48 | 显示全部楼层
另外看在我面经这么详细的份上,求大米啊~~~~~最近老在地里搜面经,大米用的有点多。。。
回复 支持 反对

使用道具 举报

lzyyxtk 发表于 2017-9-15 08:36:41 | 显示全部楼层
justin 发表于 2017-9-15 06:20
我周五面的。weekend event没听说过,你跟hr确认下,如果是面试的话,hr会给你发面试名单的

谢谢楼主 要面试都是我问了hr才说的 之前都以为只是个参观活动 我再等等吧
回复 支持 反对

使用道具 举报

xiaobailong 发表于 2017-9-15 08:52:28 | 显示全部楼层
justin 发表于 2017-9-15 08:06. From 1point 3acres bbs
心情其实还好啦,因为我有其它同级别的offer了:)

第二轮我查了下,是利口389。test case全靠自己想 ...

哈哈,那就恭喜啦~

大米怎么给啊...我看一下,要是有就给你..
回复 支持 反对

使用道具 举报

xiaobailong 发表于 2017-9-15 10:30:34 | 显示全部楼层
justin 发表于 2017-9-15 08:06
心情其实还好啦,因为我有其它同级别的offer了:)

第二轮我查了下,是利口389。test case全靠自己想 ...

又看了一下,第四轮是LeetCode原题,621. Task Scheduler
回复 支持 反对

使用道具 举报

 楼主| justin 发表于 2017-9-15 11:33:19 | 显示全部楼层
xiaobailong 发表于 2017-9-14 21:30
又看了一下,第四轮是LeetCode原题,621. Task Scheduler

leetcode都出到621了。。。我才刷到500道。。。刷题速度已经赶不上人家的出题速度了。。。
回复 支持 反对

使用道具 举报

xiaobailong 发表于 2017-9-15 12:24:03 | 显示全部楼层
justin 发表于 2017-9-15 11:33 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
leetcode都出到621了。。。我才刷到500道。。。刷题速度已经赶不上人家的出题速度了。。。

500道很多了....感觉你就是大神....
最近题蛮多的,都是面试或者比赛出来的
回复 支持 反对

使用道具 举报

siren01 发表于 2017-9-19 00:48:00 | 显示全部楼层
justin 发表于 2017-9-15 08:06
心情其实还好啦,因为我有其它同级别的offer了:) 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

第二轮我查了下,是利口389。test case全靠自己想 ...

Justin你最后打算拿个公司?
回复 支持 反对

使用道具 举报

linlin1990 发表于 2017-10-2 23:11:39 | 显示全部楼层
第四轮第一题 弱弱的问下 感觉没这么复杂呀 这样不就好了嘛。。为啥还需要queue。。
        private int time(char[] tasks, int k) {
                Map<Character, Integer> map = new HashMap<>();
                int timer = 0;
                for (int i = 0; i < tasks.length; i++) {
                        timer++;
                        if (!map.containsKey(tasks[i])) {
                                map.put(tasks[i], timer);
                        } else if (map.get(tasks[i]) - timer <= k) {.鏈枃鍘熷垱鑷1point3acres璁哄潧
                                timer++;
                        }. 1point 3acres 璁哄潧
                }
               
                return timer;-google 1point3acres
        }
回复 支持 反对

使用道具 举报

linlin1990 发表于 2017-10-3 04:12:16 | 显示全部楼层
另外麻烦问下 lc389和diff function不太一样。。。麻烦问下以哪个为准呢。。谢谢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-11-24 17:46

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表