传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
Babeltime游戏工作室招工程师、美术和策划
Tubi TV招安卓、前端和机器学习工程师
把贵司招聘信息放这里
查看: 563|回复: 9
收起左侧

脸书 Data Engineer 二轮电面

[复制链接] |试试Instant~ |关注本帖
pyzhangyi 发表于 6 天前 | 显示全部楼层 |阅读模式

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

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

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

x
三天前面了FB Data Engineer的第一轮 (面经看这里:http://www.1point3acres.com/bbs/thread-292323-1-1.html)。第二天HR通知move forward进行第二轮电面,安排在了今天。. From 1point 3acres bbs

面试官是一个三哥。先出了两道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). 鍥磋鎴戜滑@1point 3 acres
算法二: int[] a = {1,0,0,2,0,3,......1,0,2,3}. 1point 3acres 璁哄潧
            int[] b = {1,1,0,0,0,1,......2,1,0,1}. visit 1point3acres.com for more.
            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


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

评分

1

查看全部评分

chris612ku 发表于 6 天前 | 显示全部楼层
楼主算法一是先用hashmap算每个character的次数然后在按照sorted string去ouput吗?
谢谢
回复 支持 反对

使用道具 举报

 楼主| pyzhangyi 发表于 6 天前 | 显示全部楼层
chris612ku 发表于 2017-9-15 10:09
楼主算法一是先用hashmap算每个character的次数然后在按照sorted string去ouput吗?. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
谢谢

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

使用道具 举报

chris612ku 发表于 6 天前 | 显示全部楼层
pyzhangyi 发表于 2017-9-15 10:40
我没用hashmap,直接用了一个int[256]的数组。

哦哦,那应该同一个意思,两个应该都可以. From 1point 3acres bbs

-google 1point3acres谢谢楼主回复
回复 支持 反对

使用道具 举报

644377737y 发表于 6 天前 | 显示全部楼层
能问下第二题lz什么思路吗
回复 支持 反对

使用道具 举报

 楼主| pyzhangyi 发表于 6 天前 | 显示全部楼层
644377737y 发表于 2017-9-15 12:50 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
能问下第二题lz什么思路吗

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

使用道具 举报

胖子Jeffwan 发表于 3 天前 | 显示全部楼层
pyzhangyi 发表于 2017-9-15 23:38. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
这道题可能是我没有特别理解清题意,因为当时时间快到了,就没有深入讨论。.鏈枃鍘熷垱鑷1point3acres璁哄潧
如果按我的理解,是想不出能 ...
. Waral 鍗氬鏈夋洿澶氭枃绔,
我有点不太明白,array如果size不相等,求的是什么积啊
回复 支持 反对

使用道具 举报

 楼主| pyzhangyi 发表于 3 天前 | 显示全部楼层
胖子Jeffwan 发表于 2017-9-18 02:41
我有点不太明白,array如果size不相等,求的是什么积啊

这个我特意问了面试官,他说如果两个数组size不同, 求SUM(a * b), i = Math.min(a.length, b.length)。这道题他并没有要求我把代码写出来,也只是想讨论一下优化的思路。
. Waral 鍗氬鏈夋洿澶氭枃绔,
补充内容 (2017-9-18 22:38): 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
SUM(a(i) * b(i))
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-21 13:27

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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