📣 独立日限时特惠: VIP通行证立减$68
回复: 42
跳转到指定楼层
上一主题 下一主题
收起左侧

脸书 电面

全局:

2016(7-9月) 码农类General 硕士 全职@meta - 内推 - 技术电面  | | Other | 在职跳槽

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
亲切的华人小哥,感觉放水了
1.
一个完全树。node有parent指针。
每个node的值为 0或 1
每个parent的值为两个子node的 “and” 结果
现在把一个leaf翻牌子(0变1或者1变0)
把树修正一遍

2.
numbe
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
site!



补充内容 (2016-9-6 12:30):
过完长周末被告知要第二轮电面。接着好好刷吧。

评分

参与人数 2大米 +50 收起 理由
hzyslddm + 10 感谢分享!
夏虫不知雪花 + 40

查看全部评分


上一篇:Pivotal 第一轮技术电面
下一篇:Facebook 第一轮电面,三道题。

本帖被以下淘专辑推荐:

推荐
mnmunknown 2016-9-3 00:31:26 | 只看该作者
全局:
alucardzhou 发表于 2016-9-2 12:52
是的是的。
所以最后在复杂度的讨论部分有点意思。
最优是O(1),最差是(logN)

leaf node 区分左右的话,可能有4种组合,每种组合分别有 flip{left, right} 两种选择,于是:

0,0 - 左,变成1; 右,变成1
0,1 - 左,不变; 右,变成0
1,0 - 左,变成0;右,不变;
1,1 - 左,不变,右,不变;

总共会造成 parent node 的值和之前有变化的可能是 4 种,所以在每一层 parent - child 的关系中任意 flip 一个 child,有 1/2 的几率造成 parent 的值也被 flip.

假设二叉树中总共有 N 的节点,其深度/自底向上路径长是 h = O(logN),那我们自底向上的更新路径实际次数就会在 【1, h】 的闭区间内,最少更新次数为 1 (计算了 leaf,但是发现对 parent 无任何影响),最大计算次数为 h ,代表一路更新到了 root.

那我们总共会计算【1,2,3 ... h】层的概率就是 【1 , 1/2 , (1/2)^2 , (1/2)^3 ... (1/2)^h】,其对应的计算次数期望值就是 1 + 1 * 1/2 + 2 * (1/2)^2 + 3 * (1/2)^3 + .... h * (1/2)^h  = 1 + Sigma (n / 2^n),在 n 趋近于无限的情况下,upper bound 是 1 + 2 = 3 ~ 所以总共的计算次数期望值确实是常数

补充内容 (2016-9-3 00:45):
最后一句话打错了=。=  变量名是 h 不是 n
回复

使用道具 举报

推荐
mnmunknown 2016-9-3 00:37:50 | 只看该作者
全局:
alucardzhou 发表于 2016-9-3 00:36
好犀利!
那个小哥当时就是这样讲的。

这小哥题出的挺用心的~ fb 的面经题我最近看了不少,但是这题的时间复杂度分析算是我最近看到的最有意思的一个!
回复

使用道具 举报

🔗
cicean 2016-9-2 05:38:24 | 只看该作者
全局:
第一题 traverse tree 改 val ? 这就完了?
第二题,原来也是求面积最大吧。原题不是找有多少个岛么?
回复

使用道具 举报

🔗
iPhD 2016-9-2 08:23:55 | 只看该作者
全局:
第一题能给点思路吗?只有parent指针吗?有left, right指针不?
回复

使用道具 举报

🔗
 楼主| alucardzhou 2016-9-2 08:25:32 | 只看该作者
全局:
cicean 发表于 2016-9-1 16:38
第一题 traverse tree 改 val ? 这就完了?
第二题,原来也是求面积最大吧。原题不是找有多少个岛么?


所以我说小哥放水啊

之前地里有个面经是求周长的。
前提一样,一个矩阵,每个格子一个字母。
给一个坐标,以坐标开始,以相同字母建立最大岛,然后返回岛的周长。
回复

使用道具 举报

🔗
 楼主| alucardzhou 2016-9-2 08:28:39 | 只看该作者
全局:
iPhD 发表于 2016-9-1 19:23
第一题能给点思路吗?只有parent指针吗?有left, right指针不?

当然有啦。
回复

使用道具 举报

🔗
iPhD 2016-9-2 08:32:55 | 只看该作者
全局:

我感觉要分4种情况?leaf是0或1,和他的parent是0或1,然后递归着做?如果Leaf是0,它的parent也是0,这种情况还要考虑sibling,稍微麻烦点,是这样做吗?
回复

使用道具 举报

🔗
Sorrow雨 2016-9-2 09:00:46 | 只看该作者
全局:
iPhD 发表于 2016-9-2 08:32
我感觉要分4种情况?leaf是0或1,和他的parent是0或1,然后递归着做?如果Leaf是0,它的parent也是0,这 ...

直接postorder改值就可以啦!
回复

使用道具 举报

🔗
iPhD 2016-9-2 09:03:53 | 只看该作者
全局:
Sorrow雨 发表于 2016-9-2 09:00
直接postorder改值就可以啦!

能说具体点吗?或给个伪代码?怎么改?
回复

使用道具 举报

🔗
 楼主| alucardzhou 2016-9-2 10:00:15 | 只看该作者
全局:

不用postorder遍历。别想复杂了。
输入就是个leaf node。(没有root)
因为是完全树(每个parent都膝下双子健在),而且有parent指针。
所以就是一个自底向上的检查。
顺序是:
先把所给leaf的值switch。然后基于新值检查其parent是否需要switch。
如果需要,则对其parent递归运行同样的方法。
如果不需要,return停止。
回复

使用道具 举报

🔗
iPhD 2016-9-2 10:13:02 | 只看该作者
全局:
alucardzhou 发表于 2016-9-2 10:00
不用postorder遍历。别想复杂了。
输入就是个leaf node。(没有root)
因为是完全树(每个pare ...

如果Leaf是0,它的parent也是0,这种情况好像比较复杂?还要看sibling的值?是要分4种情况讨论,然后递归吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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