注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
约了Snap的面试,挺奇怪这公司招人,估计是backfill,不太看到公司前景。u1s1,这公司把投资人耍得明明白白,但是对员工还挺不错。我要求把onsite 分成了两天,题目都不难。
第一天三轮:
1. 输入是 root path, 然后让输出duplicate files. duplicates的定义two files are with the same contents, byte for byte.
/* input: "/foo/"
output: [
[ "/foo/bar.png", "/foo/image/foo.png"],
["/foo/file.tmp", "/foo/other.tmp"]
]
*/
提供了 一些built-in APIs: listDir(string path), isDir(string path), join(string p1, string p2). 可以假设有一个SDK去判断两个files相同。
用BFS解了,问了一些followups, 比如哪一段是最resource consuming的。
2. Design Snap, 300M daily active users 需要有能够发text,photo和 video的功能:
- 我先给他定义好了,每天大概需要多少storage去存 这些contents。
- 提到了这个系统需要的non-functional requirements: availability, reliability, scalability
- 画了building blocks,从user requests 到databases
- 分析了一下text,phot 和video的存储,用到什么数据库(relational database and No SQL database);
- 问了我如何处理group chat存储的问题 - messaging queue, kafka
可能主要是面mid-senior level,总体来说比较简单,没有问的很深入。
3. 半个小时闲聊,貌似不会当作面试一部分。如果是一天面完,相当是用来中间过渡的。
第二天:
1. 这个算是遇到最难的题目了
/*
Sort the Matrix Diagonally
Input: mat =
[
[ 3, 3, 1, 1],
[ 2, 2, 1, 2],
[10, 0, 1, 2]
]
Output:
您好! 本帖隐藏的内容需要积分高于 188 才可浏览 您当前积分为 0。 使用VIP即刻解锁阅读权限或查看其他获取积分的方式 游客,您好! 本帖隐藏的内容需要积分高于 188 才可浏览 您当前积分为 0。 VIP即刻解锁阅读权限 或 查看其他获取积分的方式 de的,不过难度真的不大。
Snap每一轮面试前都会问bq,但每轮bq也都差不多,所以基本四轮类似的bq回答了好几遍。偶尔会深挖一下过去的project experience,大多停留在面对design choice的时候 为什么这么做而不那么做? pro&con 分析,要非常熟悉简历上的project,以及真正在工作上经历了system design的全套流程。我在原公司每次propose 一个solution的时候,真的都会经历全组其他engineers 的各种questioning,compare pro&con,所以面试的时候正好用上了。
写面经不容易求加米。。。 |