面试问了一个问题,怎么避免 C 去邀请 A,觉得有点意思?

2020 年 7 月 15 日
 xbdsky
大神们会怎么处理?
A 邀请->B 邀请->C
问怎么避免 C 去邀请 A
7055 次点击
所在节点    PHP
44 条回复
tcfenix
2020 年 7 月 15 日
https://leetcode.com/problems/linked-list-cycle/description/

啊 是这题
实际上 set 是第一步直觉的处理办法,
然后这边面试官通常应该会加一点限定条件,比如空间复杂度不能是 O(n),再往双指针的方向引导
lff0305
2020 年 7 月 15 日
判断有向图是否存在环路,可以用邻接矩阵,计算传递闭包
Sapp
2020 年 7 月 15 日
你的这个问题都不清不楚的,
首先 c 不能邀请 a 是为什么? 因为单独不能邀请 a ?还是不能邀请已经存在的用户?还是不能邀请邀请过别人的用户?还是不能邀请和自己有关联邀请的用户?还是 a 的邀请次数满了? 不同问题显然是不同答案
asLw0P981N0M0TCC
2020 年 7 月 15 日
@Sapp 一看就是不能成一个环吧
xbdsky
2020 年 7 月 15 日
@newtype0092 好吧,A 可以邀请 N 个,现在不最多 3 级吗?手动狗头
iseki
2020 年 7 月 15 日
这问题能不能再明确点
xbdsky
2020 年 7 月 15 日
@hello2060
@Sapp
就简单的问下这个需求呢,没说太多的东西,估计是想考怎么优化。
xbdsky
2020 年 7 月 15 日
@iseki 面试的没说太多条件呢,发现你们这些大神考虑的东西还是很全面的 dog
newtype0092
2020 年 7 月 15 日
@tcfenix #21 这题好奇怪,input 里给的 pos 不就是答案么,为什么还要算?
Vegetable
2020 年 7 月 15 日
奇怪的问题,没头没脑的,不同场景差太多了,如果是邀请加入某个范围,已经加入的人肯定无法被邀请了,A 是第一个加入的,肯定不能被邀请了,比如邀请注册的时候,不能邀请已注册用户,这时候根本不需要判断关系链(相当于所有人都属于一个集合,本质上也是并查集)。

需要判断关系链的邀请场景真滴想不出来,但是并查集的思路起码能解决你提到这个需求,被邀请者打上和邀请者一样的标记,不能邀请相同标记的人就行了,但是这样会同时堵死 A 邀请 C 的情况,除非做更复杂的判断。
zarte
2020 年 7 月 15 日
他们不满意,你可以问面试的呀。解决一个问题即使没过面试也是有意义的。而且还能知道是不是面试的不靠谱。
tcfenix
2020 年 7 月 15 日
@newtype0092
那个例子的输入只是为了方便读者理解题目,实际上入参就是一个 node 而已
xcstream
2020 年 7 月 15 日
父级 id 都记录下来
westoy
2020 年 7 月 15 日
这场景应该是针对社交平台病毒式传播用的, 分享得红包一类, 避免被羊毛党开马甲海闭环式刷邀请薅羊毛, 不是针对注册的
mcfog
2020 年 7 月 15 日
这有啥奇怪的,面试者把问题及相关背景确认清楚的过程(又或者是想当然地直接开始回答)也是面试中很有价值的一环
zsdroid
2020 年 7 月 15 日
理论上不存在 C 去邀请 A 问题,一般应用推广都是邀请新用户得奖励,A 又不是新用户。所以邀请了也白邀请。
aQI9F2Sb927YPj7I
2020 年 7 月 15 日
简单看了下评论,胡言乱语,不懂装懂的人好多
xl9211
2020 年 7 月 15 日
@zsdroid 正解
sjf122
2020 年 7 月 15 日
下级的下级不能是自己的上级,不然就成圈了
luman
2020 年 7 月 15 日
创建闭包表,邀请前先检测下是否已存在关系链。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/690278

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX