楼主: dragonlanding
跳转到指定楼层
上一主题 下一主题
收起左侧

谷歌onsite面经

全局:
jy_121 发表于 2019/04/04 02:20:49


请问下具体怎么做呢?谢谢

层次遍历的时候如果发现遇到已访问的说明就是多余的边了。然后删除这条边。
回复

使用道具 举报

🔗
mhsasd 2019-4-4 09:23:13 | 只看该作者
全局:
umialpha 发表于 2019-4-2 15:06
嗯嗯,给了root的话一个层次遍历(或者bfs)就ok了,感谢

二叉树多余一条边意思不是有至少一个节点有两个parent吗?删哪条边都不会影响树的高度啊
回复

使用道具 举报

🔗
jy_121 2019-4-4 09:46:01 | 只看该作者
全局:
umialpha 发表于 2019-4-4 09:03
层次遍历的时候如果发现遇到已访问的说明就是多余的边了。然后删除这条边。

为什么这样remove后的tree就是高度最小的呢?
回复

使用道具 举报

🔗
umialpha 2019-4-4 09:48:09 | 只看该作者
全局:
jy_121 发表于 2019-4-4 09:46
为什么这样remove后的tree就是高度最小的呢?

因为用层次遍历,每次访问新的节点就是新的一层,高度+1,如果你不去掉这一条边,而是去掉之前访问的那条边,那么高度肯定没有原来的小(最多是一样高)
回复

使用道具 举报

🔗
umialpha 2019-4-4 09:54:15 | 只看该作者
全局:
mhsasd 发表于 2019-4-4 09:23
二叉树多余一条边意思不是有至少一个节点有两个parent吗?删哪条边都不会影响树的高度啊

我猜可能是这样, 1->2, 1->3, 2->4, 3->4如果你删除1->2,那么还是一个树,但是高度变成4了。如果input是按照node.left, node.right这样给的,就是你的意思了。
回复

使用道具 举报

🔗
jy_121 2019-4-4 10:02:43 | 只看该作者
全局:
umialpha 发表于 2019-4-4 09:48
因为用层次遍历,每次访问新的节点就是新的一层,高度+1,如果你不去掉这一条边,而是去掉之前访问的那条 ...

明白了,谢谢
回复

使用道具 举报

🔗
mhsasd 2019-4-4 10:29:18 | 只看该作者
全局:
lz可以讲下第四题怎么用拓扑排序吗
回复

使用道具 举报

🔗
hername 2019-4-4 17:32:00 | 只看该作者
全局:
第四题是标准的 二分图最大匹配。匈牙利算法吧。
回复

使用道具 举报

🔗
 楼主| dragonlanding 2019-4-6 11:36:43 | 只看该作者
全局:
第四题我一开始也以为是二分图问题,但被面试官否认了,然后在hint下, 才反应过来是toposort,code没写完,但思路面试官说是正确的。

第四题是这样子的,就是首先,肯定有2n个人,然后对于一个pair(m, n), 表示m喜欢n,但n不一定喜欢m。并且,每一个人只会喜欢1个人, 所以m喜欢了n,就不存在m喜欢l。所以,如果把人作为node的话,就相当于,每个node出度<=1。因此,把喜欢这种关系建成一个图之后,每次都从入度为0的node出发(比如m喜欢n,但没人喜欢m,这样的话把<m, n>配在一起,同时把m,n从图中去掉), 这样一直做下去,直到最后要么剩下了环,也有可能剩下了几个单点),就是toposort。

(假设不会存在强耦合环,即a->b, b->a,若存在的话,可以先preprocess, 让强耦合两两匹配,之后再跑toposort)

证明最优性:如果选了(m,n)这条边,就使得m和自己喜欢的人配到了一起,也就相当于给最终答案贡献了1,然而这种贡献并不会影响到全局最优,因为首先m入度为0,所以m只能配n,并且,n在最优解当中至多被一个人匹配,所以选择(m,n)这条边不会影响全局最优。(有点像贪心的意思)。

最后如果是单点,可以随意匹配其它单点,如果是环,可以选任意一边解环。

评分

参与人数 1大米 +2 收起 理由
lorixx + 2 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
zdzapple 2019-4-9 17:12:02 | 只看该作者
全局:
dragonlanding 发表于 2019-4-6 11:36
第四题我一开始也以为是二分图问题,但被面试官否认了,然后在hint下, 才反应过来是toposort,code没写完, ...

需要考虑

a -> e
b -> e
c -> e

这类情况吗,很多人喜欢一个人。

这种情况下不太好删吧,除非维护一个deleted的set
回复

使用道具 举报

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

本版积分规则

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