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


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 3283|回复: 25
收起左侧

西雅图的FB 面筋

[复制链接] |试试Instant~ |关注本帖
fliu249 发表于 2017-7-1 15:41:17 | 显示全部楼层 |阅读模式

2017(4-6月) 码农类 博士 全职@Facebook - 猎头 - Onsite |Fail在职跳槽

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

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

x
前一阵子面了西雅图的FB,感觉他家的题不难,可惜最后没有拿到。.鐣欏璁哄潧-涓浜-涓夊垎鍦

店面:
1. word break
2. N-Queen。 这道题时间有点紧张,所以那个辅助的isSafe() 函数就没有写。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

onsite:
1. 一个从亚麻跳过来的白男,上来就问如果有一堆字符串,怎么找出所有相同前缀的字符。直接回答说用trie, 他然后问我如果只有几个字符呢,还需要用trie么?所以和他胡扯了几句,说那直接扫描就可以了。然后开始coding, 可以假设Trie已经实现了,只需要实现搜索的功能。
2. 一个白男经理。behavior + coding. Coding 问的是 有一个无限大的国际象棋棋盘,告诉我 knight 怎么走法, 然后棋盘中有些格子有障碍不能停, 给你起点和终点,返回一个路径。如果没有路径的,返回空。我先是直接用单向的BFS写了一遍,然后说其实应该用双向的BFS,不然如果没有路径的情况,会死循环。因为时间关系,没有实现,他也认可了。
3. Design a simple message system.  是个国男大哥,很严肃,但估计也没有刁难我。就是基本的怎么发信息,怎么收信息,然后怎么通知receiver,如果有新的消息了。
4. 给一个数字组成的字符串,可以在任意两个数字之间放加号或乘号,求可以得到的最大值。就是用divide + memorization解之。

评分

2

查看全部评分

本帖被以下淘专辑推荐:

zzgzzm 发表于 2017-8-10 09:57:59 | 显示全部楼层
kqxqx 发表于 2017-8-6 00:03
如果destination被障碍物包围了就会

即使是双向BFS也会死循环的。关键在于“无限大的国际象棋棋盘”。. From 1point 3acres bbs

当起点无法到达终点的时候未必一定要某个被包围,例如他们之间有一个宽度为2的无限长鸿沟

其实当题目中一旦有“无限”的条件的话就一下子从计算上升到数学需要考虑的范畴了。这时BFS必须有一个设定的Stop Condition (e.g., maximum visited number of cells).

更简单的可以这么想:当棋盘无限时,你根本不可能在有限时间内探明那些障碍的位置,而每个障碍的位置都可能影响最终“走通”或“不通”的结果。所以,对于无限棋盘在有限时间内是不能可能有定论的,最多只能是在e.g., MAX=10000步BFS内不能到达。
回复 支持 1 反对 0

使用道具 举报

david.fang 发表于 2017-7-1 16:15:56 | 显示全部楼层
楼主面的是level几?电面N皇后好难啊。。。
回复 支持 反对

使用道具 举报

熟狗脸 发表于 2017-7-1 20:04:42 来自手机 | 显示全部楼层
谢谢楼主分享,答的挺好为啥被拒
回复 支持 反对

使用道具 举报

 楼主| fliu249 发表于 2017-7-3 06:44:40 | 显示全部楼层
david.fang 发表于 2017-7-1 16:15
楼主面的是level几?电面N皇后好难啊。。。

应该是5,senior吧
回复 支持 反对

使用道具 举报

scredwood 发表于 2017-7-3 07:35:33 | 显示全部楼层
给一个数字组成的字符串,可以在任意两个数字之间放加号或乘号,求可以得到的最大值。就是用divide + memorization解之。   这是可以放任意个+ * 吗?
回复 支持 反对

使用道具 举报

 楼主| fliu249 发表于 2017-7-3 08:09:55 | 显示全部楼层
scredwood 发表于 2017-7-3 07:35
给一个数字组成的字符串,可以在任意两个数字之间放加号或乘号,求可以得到的最大值。就是用divide + memor ...

对。开始的时候假设是每个数字之间都要放操作符,后来follow up 变成可以把多个数字看成一个大数字
回复 支持 反对

使用道具 举报

scredwood 发表于 2017-7-3 08:34:03 | 显示全部楼层
fliu249 发表于 2017-7-3 08:09
对。开始的时候假设是每个数字之间都要放操作符,后来follow up 变成可以把多个数字看成一个大数字

多谢lz
那就是类似 这个了
282. Expression Add Operators
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
只不过是求MAX,所以可以记忆化。
回复 支持 反对

使用道具 举报

oio14644 发表于 2017-7-10 14:10:28 | 显示全部楼层
fliu249 发表于 2017-7-3 08:09
对。开始的时候假设是每个数字之间都要放操作符,后来follow up 变成可以把多个数字看成一个大数字
. visit 1point3acres.com for more.
"134" 这种是不用添加任何符号最大吗 134, 我指的是followup
回复 支持 反对

使用道具 举报

熟狗脸 发表于 2017-7-11 01:21:20 来自手机 | 显示全部楼层
最后一题啥思路
回复 支持 反对

使用道具 举报

wzmeetcan 发表于 2017-7-11 01:51:24 | 显示全部楼层
请问lz是直接网投FB的西雅图office的吗?
回复 支持 反对

使用道具 举报

此用户无名 发表于 2017-7-11 11:27:52 | 显示全部楼层
请问coding那两轮问你简历了吗? behavior大致问了什么问题能提示一下吗?谢谢
回复 支持 反对

使用道具 举报

douch 发表于 2017-7-11 15:05:50 | 显示全部楼层
双向BFS也有可能无限循环吧
回复 支持 反对

使用道具 举报

douch 发表于 2017-7-11 15:07:34 | 显示全部楼层
douch 发表于 2017-7-11 15:05. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
双向BFS也有可能无限循环吧

lz对的 我傻x了 双向不会有死循环
回复 支持 反对

使用道具 举报

 楼主| fliu249 发表于 2017-7-13 12:35:38 | 显示全部楼层
wzmeetcan 发表于 2017-7-11 01:51
请问lz是直接网投FB的西雅图office的吗?

recruiter直接找我的
回复 支持 反对

使用道具 举报

 楼主| fliu249 发表于 2017-7-13 12:36:47 | 显示全部楼层
oio14644 发表于 2017-7-10 14:10
"134" 这种是不用添加任何符号最大吗 134, 我指的是followup
. 1point 3acres 璁哄潧
应该是的,后来没时间和面试官确认了,就讲了一下思路
回复 支持 反对

使用道具 举报

 楼主| fliu249 发表于 2017-7-13 12:39:50 | 显示全部楼层
此用户无名 发表于 2017-7-11 11:27
请问coding那两轮问你简历了吗? behavior大致问了什么问题能提示一下吗?谢谢
. From 1point 3acres bbs
Coding的那几轮不问简历,就是几句话介绍一下自己。在behavior那一轮会问的仔细一点。问题也是那种普通的,什么最有挑战的项目啊,有没有跟老板意见不一样的时候,如果有,怎么解决拉,等等。
回复 支持 反对

使用道具 举报

此用户无名 发表于 2017-7-13 13:00:06 | 显示全部楼层
你是哪天onsite的啊?电面是总部打来的还是虾图打来的呀?谢谢啦
回复 支持 反对

使用道具 举报

33847682 发表于 2017-7-13 13:04:27 | 显示全部楼层
fliu249 发表于 2017-7-13 12:39.鏈枃鍘熷垱鑷1point3acres璁哄潧
Coding的那几轮不问简历,就是几句话介绍一下自己。在behavior那一轮会问的仔细一点。问题也是那种普通的 ...

请问lz onsite之前是有会有manager给你打电话么? 告诉你怎么准备onsite之类的?
回复 支持 反对

使用道具 举报

熟狗脸 发表于 2017-7-13 20:06:33 来自手机 | 显示全部楼层
即便单向BFS也不会死循环吧?可以用 Visited 这个 hashset 来判断是否已经走过某点
回复 支持 反对

使用道具 举报

kennethinsnow 发表于 2017-7-17 10:12:59 | 显示全部楼层
divide and conquer 为什么需要记忆化?
int med = start + (end - start) / 2;
left = max(num, start, med - 1);
right = max(num, med, end);
reurn left * right > left + right ? left * right : left + right;
.鐣欏璁哄潧-涓浜-涓夊垎鍦
follow up可以用记忆化
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-25 19:59

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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