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

Google 1月11日阳光谷面经(最后一轮神仙题求解答)

全局:

2019(1-3月) 码农类General 硕士 全职@google - 内推 - Onsite  | | Other | 应届毕业生

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

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

x
1月11号Sunnyvale面试,前几天被通知general SDE的坑不多了,于是就转了SETI。明天要加面两轮。。。发个面经攒攒人品。求过,求面经高频题,求没有神仙DP。
您好!
本帖隐藏的内容需要积分高于 120 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 120 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies


评分

参与人数 9大米 +64 收起 理由
lzyprint + 3 给你点个赞!
mcnoodle + 3 给你点个赞!
richpanda + 3 楼主记录很详细
紫衣云梦小怪兽 + 40
weihang30526 + 3 给你点个赞!

查看全部评分


上一篇:亚马逊电面~~~
下一篇:亚麻湾区昂赛

本帖被以下淘专辑推荐:

推荐
百晓生 2019-2-2 03:09:40 | 只看该作者
全局:
用A认识的人建立无向图,例如节点为 B C D E F,用个map或者数组记录各个节点的degree, 把degree小于3的放在queue里面(例子中是C) 然后BFS,每次把queue中每个节点相连接的节点再degree--, 如果该相邻节点degree小于3再放入queue中。最后剩下的degree大于等于3的节点就是最后被邀请的。

补充内容 (2019-2-2 07:31):
另外请问下第二题面试官给的做法是啥?Union Find?

评分

参与人数 4大米 +14 收起 理由
TheMiracle + 3 很有用的信息!
Bobyyc + 3 给你点个赞!
xh_pku + 5 可以说是最优解了
forbread + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

全局:
杨超越 发表于 2019/02/02 01:07:14


其实只需要把所有出现过的人 建立图 然后统计一下connection 个数就行 你的方法是正确的 点赞

看了大家的回复,都把问题想麻烦了。并且拓扑排序是针对有向无环图的,不适用于这个场景。
回复

使用道具 举报

推荐
sdwrz16 2019-2-2 04:04:35 | 只看该作者
全局:
感谢楼主分享,

第二轮没大看懂岛屿的定义, 是有一部分1围成一个圈就可以? 还是说必须全部都是1?

第四轮我的思路类似拓扑排序, 以楼主的例子来, 先把A能邀请的所有人放在HashMap的key里,对应的value就是一个set, 包含他们每个人的朋友同时也被A邀请了, 然后BFS扫, 只要set的size小于3, 就放到queue里, 然后修改邻居的set, 如果修改的时候set的size又变小了, 再放到queue里, 直到queue为空跳出, 最后HashMap里剩下的就是可以被邀请的人. 具体如下, 最开始的HashMap:
B: CDEF
C: BF
D: BEF
E: BDF
F: BCDF
C的set的size小于3, 所以先把C放进queue, 同时hashmap里删掉C, 在B和F的set里把C删掉, 变成
B:DEF
D:BEF
E:BDF
F:BDF
因为B和F的set的size还是大于等于3的, 所以不放入queue, queue空了, 跳出循环, 返回所有剩下的key:BDEF
回复

使用道具 举报

全局:
就是算相同的公共元素个数,如果匹配度超过3个就邀请,否则不邀请,楼主觉得呢?
回复

使用道具 举报

🔗
iejr 2019-2-1 15:41:55 来自APP | 只看该作者
全局:
我觉得是先假设邀请所有a的朋友,然后去掉不达成条件的(朋友中少于三个被邀请的),再看被刚去掉的殃及到的人,不达成条件再去,直到稳定为止…不知道对不
回复

使用道具 举报

全局:
最后一题感觉楼主想麻烦了。

首先,如果如果给的图里面每个节点都有至少三条边的话,就直接邀请所有人就好了。一定是成立的。

现在有个数据结构ds:
1,把所有节点的边的个数统计一下,放到ds中
2,拿ds中最小的值,如果值大于等于3,直接退出,ds的大小就是最终解
3,否则删除这个最小的节点,并且把该节点关联的节点的值都-1
4,重复步骤2和3

所以现在就是需要有个数据结构可以get-min, pop-min, update-value。priority queue不可以update,bst可以满足这些操作。
回复

使用道具 举报

全局:
pengdu 发表于 2019/02/01 18:27:32
最后一题感觉楼主想麻烦了。

首先,如果如果给的图里面每个节点都有至少三条边的话,就直接邀请所有人就好了。一定是成立的。

现在有个数据结构ds:
1,把所有节点的边的个数统计一下,放到ds中
2,拿...

补充一下:不需要用bst,只需要一个数组存一下边数小于等于3的节点就可以了。每次去更新边的个数的时候,如果发现小于等于3,就加到数组中去。
回复

使用道具 举报

🔗
杨超越 2019-2-2 01:03:32 | 只看该作者
全局:
最后一题就是不断的check 是否满足条件的过程。
对于每个人每次去删掉那些不在A朋友圈的人。如果某个人朋友圈的人数小于3,那么这个人也不应该存在于A的朋友圈。一直循环到最后稳定状态
回复

使用道具 举报

🔗
杨超越 2019-2-2 01:07:14 | 只看该作者
全局:
pengdu 发表于 2019-2-1 18:40
补充一下:不需要用bst,只需要一个数组存一下边数小于等于3的节点就可以了。每次去更新边的个数的时候, ...

其实只需要把所有出现过的人 建立图 然后统计一下connection 个数就行 你的方法是正确的 点赞
回复

使用道具 举报

🔗
ttforsythe 2019-2-2 01:26:30 | 只看该作者
全局:
最后一题是toplogical sorting, 建个图然后计算每个点的degree,
从不可能的点(degree < 3)的开始,
剩下的就是邀请名单
回复

使用道具 举报

全局:
最后一题有点无向图里面找强链接cluster的意思。解题时只要注意到小于三条边的点肯定是不满足条件,是要剔除的。当然,剔除点的同时,要把其对应的边也移除掉,所以有个动态更新图的过程。剥离的时候为了效率高些,可以用priority queue记录每个点对应的边数。这题思想和lc里面有道剥洋葱的图题有点类似。
回复

使用道具 举报

🔗
cheerier 2019-2-2 01:44:13 | 只看该作者
全局:
请问第一题可以用BFS吗?
回复

使用道具 举报

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

本版积分规则

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