一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 4189|回复: 25
收起左侧

Snapchat电面两轮+onsite面经

[复制链接] |试试Instant~ |关注本帖
汐风悠远 发表于 2016-1-15 22:45:20 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Snapchat - 内推 - 技术电面 Onsite |Failfresh grad应届毕业生

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

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

x
写一份面筋,给最后一封拒信Snapchat。

第一轮电面:实现 linux command line中的tab completion功能(其实就是让实现一个trie,但是要注意一下有多个可能结果时的情况。小哥当时要求实现的效果跟command line behavior一样。平时没注意过这点,蒙圈了,被加了一轮电面)

第二轮电面:Big integer addition and substraction。S家的电面高频题. Waral 鍗氬鏈夋洿澶氭枃绔,

Onsite: onsite前一晚和当天都在发高烧,有些细节记不清了还请见谅
第一轮:Binary tree level order traversal,LC原题,早上吃药退了烧,状态还行秒掉了

第二轮:Team manager小哥。Given a M X N grid, a random cell in the grid (coordinate <a, b> for example), find number of ways you can reach top-left corner in k steps, assuming you can move in any direction. 这轮又开始发烧,明明是个3D DP昏昏沉沉硬是用2D DP来写,被小哥的edge case challenge好多次 QAQ。最后他说you actually started very close to the right solution, only if you added number of steps as a dimension的时候LZ简直要哭出来了T_T

第三轮:做安卓端的小哥。问题是假定给个屏幕和一些屏幕坐标和渲染单个像素点的API,要求设计一个渲染class, 能实现当手指点下去的时候开始渲染,手指拖动过程中渲染以屏幕一角和手指作为对角线的一个长方形(这个长方形可以根据手指的运动扩大缩小),最终当手指离开屏幕的时候,以手指最后位置为准,留下most recent的那个长方形。小哥在整个过程中除了回答clarification以外一直不出声,edege case都是LZ一边写一边找出来的。。。

第四轮:面试官没来,LZ在趴桌半小时后才意识到自己被放了鸽子。。。undefined

周五Onsite,周一下午收到拒信。也是意料之中吧,毕竟onsite的表现实在不好。S家确实如传说中那样,很注重culture match,一小时一轮的onsite,每轮都至少聊了20分钟culture fit才开始做题,最后还有五到十分钟的Q&A。

评分

4

查看全部评分

 楼主| 汐风悠远 发表于 2016-1-20 15:11:39 | 显示全部楼层
say543 发表于 2016-1-20 15:05
edge cases 理解了!!! 所以是assume API可以直接work 这样要怎么compile and run呢? 问题多感谢LZ...
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
这题不是要compile and run的(很没有小黄图风格是不是?LZ当时内心OS一直在吐槽),是你设计出来,用他给的API实现,然后自圆其说验证你的设计为什么可以handle all cases (LZ当时是分情况一个个trace through了).具体要求的话,小哥当时就是听着然后在自己电脑上记录,并没有feedback...
回复 支持 2 反对 0

使用道具 举报

MCwong 发表于 2016-1-16 07:38:56 | 显示全部楼层
感谢lz分享! 请问第一轮多个可能结果的情况有什么坑么, 我的想法是DFS Trie中剩余的Node即可.和command line behavior一样是指每次click换一个可能的补全结果么?
第三轮的给的一些屏幕坐标是指什么?
回复 支持 反对

使用道具 举报

Gianluigi 发表于 2016-1-16 08:38:57 | 显示全部楼层
感谢lz分享!非常有用呀!lz顶着高烧去 onsite,真是不容易。
回复 支持 反对

使用道具 举报

Gianluigi 发表于 2016-1-16 08:45:21 | 显示全部楼层
请问第三题能说的更详细些吗?在手指滑动的时候是会不断地调用我们要写的 API 吗?这个 API 主要的功能和返回值是什么呢?
回复 支持 反对

使用道具 举报

gjxwin 发表于 2016-1-19 05:02:48 | 显示全部楼层
求问第二轮用dp怎么解啊,谢谢!
回复 支持 反对

使用道具 举报

haoxuango 发表于 2016-1-19 05:27:54 | 显示全部楼层
楼主culture fit能不能举个例子, 什么类型的
回复 支持 反对

使用道具 举报

say543 发表于 2016-1-19 12:16:06 | 显示全部楼层
谢LZ分享 第三轮需要有什么特别的edge cases吗? 需要implement event listening 吗?
回复 支持 反对

使用道具 举报

say543 发表于 2016-1-19 12:20:08 | 显示全部楼层
gjxwin 发表于 2016-1-19 05:02
求问第二轮用dp怎么解啊,谢谢!

我认为这边的是k 是指k次内能到达的所以dp 会多一个k 的维度这样结果会存在dp[k][0][0] 中因为[0,0] 是top left cover 看看这思路行不行
回复 支持 反对

使用道具 举报

gjxwin 发表于 2016-1-20 04:38:48 | 显示全部楼层
say543 发表于 2016-1-19 12:20
我认为这边的是k 是指k次内能到达的所以dp 会多一个k 的维度这样结果会存在dp[k][0][0] 中因为[0,0] 是to ...

是3维,但是就是代码不会写,貌似是dp+dfs,感觉好难啊
回复 支持 反对

使用道具 举报

 楼主| 汐风悠远 发表于 2016-1-20 10:12:23 | 显示全部楼层
MCwong 发表于 2016-1-16 07:38
感谢lz分享! 请问第一轮多个可能结果的情况有什么坑么, 我的想法是DFS Trie中剩余的Node即可.和command lin ...

不算是算法上的坑吧,就是考你平时用tab completion的时候有没有注意它的反应细节。你可以开command line试一下,如果有多个match的时候它是不做补全的,而是把所有结果给你返回。E.g. 输入ap后调用tab completion,如果当前目录下有application,apple两个match,就都列出来而不是补全至其中一个。这里我是加了一个boolean helper找trie当前位置的子node个数

第三轮记得是给个API,可以返回你手指当前位置的坐标
回复 支持 反对

使用道具 举报

 楼主| 汐风悠远 发表于 2016-1-20 10:14:09 | 显示全部楼层
Gianluigi 发表于 2016-1-16 08:45
请问第三题能说的更详细些吗?在手指滑动的时候是会不断地调用我们要写的 API 吗?这个 API 主要的功能和返 ...

是否调用和调用什么都要你自己决定,他只要求你能完成这个动态渲染的过程。API有好几个,就记得有个API,可以返回你手指当前位置的坐标,有个渲染(undo)当前坐标点,还有两个真的记不起来的请见谅。
回复 支持 反对

使用道具 举报

 楼主| 汐风悠远 发表于 2016-1-20 10:18:30 | 显示全部楼层
say543 发表于 2016-1-19 12:16
谢LZ分享 第三轮需要有什么特别的edge cases吗? 需要implement event listening 吗?
. 1point3acres.com/bbs
edge case的话比方说边界,先渲染大块然后又缩小了(后者是前者子集),渲染的长方形形状变化了(E.g.一个长长的变成一个扁扁的,这样就有一部分需要undo,一部分需要保留,还有一部分需要加上)
回复 支持 反对

使用道具 举报

 楼主| 汐风悠远 发表于 2016-1-20 10:23:18 | 显示全部楼层
haoxuango 发表于 2016-1-19 05:27
楼主culture fit能不能举个例子, 什么类型的

大部分是standard啦,why snapchat, what do you like about it这种的。安卓小哥还特别passionate跟我就social media privacy来了一通大讨论(怀疑他这里说累了,结果后面一言不发。。。)。总是就是standard questions,但要做好随时深入讨论的准备
回复 支持 反对

使用道具 举报

say543 发表于 2016-1-20 15:05:03 | 显示全部楼层
汐风悠远 发表于 2016-1-20 10:18
edge case的话比方说边界,先渲染大块然后又缩小了(后者是前者子集),渲染的长方形形状变化了(E.g.一 ...


edge cases 理解了!!! 所以是assume API可以直接work 这样要怎么compile and run呢? 问题多感谢LZ...
回复 支持 反对

使用道具 举报

Gianluigi 发表于 2016-1-21 02:36:29 | 显示全部楼层
汐风悠远 发表于 2016-1-20 15:11
这题不是要compile and run的(很没有小黄图风格是不是?LZ当时内心OS一直在吐槽),是你设计出来,用他给 ...

多谢,很有帮助。
回复 支持 反对

使用道具 举报

haoxuango 发表于 2016-1-23 12:00:51 | 显示全部楼层
楼主big integer怎么写呢。。有代码吗, 或者思路?
回复 支持 反对

使用道具 举报

say543 发表于 2016-1-28 12:50:23 | 显示全部楼层
第二轮的3-d DP 原本以为想通还是写不出来LZ 能指点下吗 ?
回复 支持 反对

使用道具 举报

kemeng1314 发表于 2016-5-7 14:20:03 | 显示全部楼层
想问下楼主一般什么情况会加面。我周三面完现在一直没有消息,当时出了一点bug。
回复 支持 反对

使用道具 举报

miumiu218 发表于 2016-7-20 10:16:28 | 显示全部楼层
楼主你好!能请问一下你是new grad吗?snapchat的onsite如果是new grad会考系统设计或者除算法以外的题吗?谢谢!
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-6 03:02

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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