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


一亩三分地论坛

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

脸书 Data Engineer 二轮电面

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

2017(7-9月) 码农类 硕士 全职@Facebook - Other - 技术电面 |Other在职跳槽

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

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

x
三天前面了FB Data Engineer的第一轮 (面经看这里:http://www.1point3acres.com/bbs/thread-292323-1-1.html)。第二天HR通知move forward进行第二轮电面,安排在了今天。. more info on 1point3acres.com
. 鍥磋鎴戜滑@1point 3 acres
面试官是一个三哥。先出了两道SQL题,然后出了一道Coding题,做完Coding后一看还有十分钟,问我是想继续做题还是说再来一道算法题。我说再来一道算法题吧,没时间写就讨论一下呗。所以等于一共四道题,搞出来了3.5道。

SQL:给了四个表,但是问题用到的只有两个表。一个叫Sales,另一个叫Customer。Sales表有Product_id, customer_id, Store_id, revenue, sales_date几个有用的fields,Customer表惟一有用的就是customer_id这个field。
问题一: Find the percentage of the customer who at least puchase 1 product.
问题二: Find (2015 total sales revenue / 2014 total sales revenue) - 1 for all the stores.

算法一: InputString = "babca", sortedString = "bca". Get the result = "bbcaa" (The characters in the result string should have the same order of the sortedString, and same counts of the InputString)
算法二: int[] a = {1,0,0,2,0,3,......1,0,2,3}
            int[] b = {1,1,0,0,0,1,......2,1,0,1}
            1. Find the SUM(a * b) (a and b could have the different size)
            2. How to optimize the arrays so it can get the SUM(a * b) faster. Waral 鍗氬鏈夋洿澶氭枃绔,


补充内容 (2017-9-16 03:55):
打错了,第一道Coding后面试官问我是想继续来道算法题聊聊还是我这边有什么问题问问他,他回答下~加上第一轮电面时面试官上来就说今天给你出三道题(最后做了四道),看来似乎这个职位电面的Bar就是三道题(猜的)

评分

2

查看全部评分

 楼主| pyzhangyi 发表于 2017-10-4 01:47:50 | 显示全部楼层
creekwhisper 发表于 2017-10-3 23:14. 1point3acres.com/bbs
SQL1和2能说一下怎么做的么

SQL一:
需要用到两个表,一个是Sales(理解成orders)表,每一个order都有一个customerId,另一个是Customer表,每一个row也都有一个CustomerId
SELECT COUNT(DISTINCT Sales.CustomerId) / COUNT(DISTINCT Customer.CustomerId) FROM Sales, Customer

SQL二:
SELECT StoreId, SUM(IF(YEAR(Sales_date) = '2015', revenue, 0)) / SUM(IF(YEAR(Sales_date) = '2014', revenue, 0)) - 1 FROM Sales GROUP BY StoreId
回复 支持 2 反对 1

使用道具 举报

chris612ku 发表于 2017-9-15 10:09:27 | 显示全部楼层
楼主算法一是先用hashmap算每个character的次数然后在按照sorted string去ouput吗?. visit 1point3acres.com for more.
谢谢
回复 支持 反对

使用道具 举报

 楼主| pyzhangyi 发表于 2017-9-15 10:40:59 | 显示全部楼层
chris612ku 发表于 2017-9-15 10:09-google 1point3acres
楼主算法一是先用hashmap算每个character的次数然后在按照sorted string去ouput吗?. from: 1point3acres.com/bbs
谢谢

我没用hashmap,直接用了一个int[256]的数组。
回复 支持 反对

使用道具 举报

chris612ku 发表于 2017-9-15 11:13:24 | 显示全部楼层
pyzhangyi 发表于 2017-9-15 10:40
我没用hashmap,直接用了一个int[256]的数组。
. from: 1point3acres.com/bbs
哦哦,那应该同一个意思,两个应该都可以

谢谢楼主回复
回复 支持 反对

使用道具 举报

644377737y 发表于 2017-9-15 12:50:02 | 显示全部楼层
能问下第二题lz什么思路吗
回复 支持 反对

使用道具 举报

 楼主| pyzhangyi 发表于 2017-9-15 23:38:25 | 显示全部楼层
644377737y 发表于 2017-9-15 12:50
能问下第二题lz什么思路吗

这道题可能是我没有特别理解清题意,因为当时时间快到了,就没有深入讨论。
如果按我的理解,是想不出能比O(n)更好的方法了。我当时讨论给出的答案就是,把每一个数组,不为0的index分别放到两个bitset里,然后找交集。这样的时间开销其实还是得是O(n),而且还有空间开销,理论上还不如直接扫。
还有一种优化的思路是能不能从数学运算上处理,我暂时也没有太多思路,如果有思路的还请分享一下~
回复 支持 反对

使用道具 举报

胖子Jeffwan 发表于 2017-9-18 02:41:07 | 显示全部楼层
pyzhangyi 发表于 2017-9-15 23:38
这道题可能是我没有特别理解清题意,因为当时时间快到了,就没有深入讨论。
如果按我的理解,是想不出能 ...

我有点不太明白,array如果size不相等,求的是什么积啊
回复 支持 反对

使用道具 举报

 楼主| pyzhangyi 发表于 2017-9-18 22:38:23 | 显示全部楼层
胖子Jeffwan 发表于 2017-9-18 02:41
我有点不太明白,array如果size不相等,求的是什么积啊
. visit 1point3acres.com for more.
这个我特意问了面试官,他说如果两个数组size不同, 求SUM(a * b), i = Math.min(a.length, b.length)。这道题他并没有要求我把代码写出来,也只是想讨论一下优化的思路。
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
补充内容 (2017-9-18 22:38):
SUM(a(i) * b(i))
回复 支持 反对

使用道具 举报

 楼主| pyzhangyi 发表于 2017-9-19 05:21:54 | 显示全部楼层
刚刚HR打电话和我讲了onsite面试流程和注意事项。之前看到有人发Data Engineer的面经,套路不大一样~Onsite一共五轮,两轮Coding,一轮SQL,一轮System Design,一轮Behavior加一个午饭。看起来和SDE差不多了,就是一轮Coding改成SQL了,全是白板
回复 支持 反对

使用道具 举报

胖子Jeffwan 发表于 2017-9-19 06:44:39 | 显示全部楼层
pyzhangyi 发表于 2017-9-19 05:21
刚刚HR打电话和我讲了onsite面试流程和注意事项。之前看到有人发Data Engineer的面经,套路不大一样~Onsite ...

楼主加油,其实你比一般的标准的4轮SDE算下来还多一轮1轮SQL呢..
回复 支持 反对

使用道具 举报

creekwhisper 发表于 2017-10-3 23:14:37 | 显示全部楼层
SQL1和2能说一下怎么做的么
回复 支持 反对

使用道具 举报

creekwhisper 发表于 2017-10-5 00:43:24 | 显示全部楼层
我昨天面了de的第一轮电面,一个小时,一共3道sql3道coding, SQL题的表格跟你这个一样,但是题目完全不同。现在hr还没来通知不知道咋样。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

creekwhisper 发表于 2017-10-5 00:43:44 | 显示全部楼层
也是一个三哥,估计是同一个人
回复 支持 反对

使用道具 举报

devin233 发表于 2017-10-5 07:08:07 | 显示全部楼层
creekwhisper 发表于 2017-10-5 00:43. more info on 1point3acres.com
我昨天面了de的第一轮电面,一个小时,一共3道sql3道coding, SQL题的表格跟你这个一样,但是题目完全不同。 ...

昨天面+1  我面了8道题。。  同没有消息

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-11-23 08:05

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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