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

2020-07-15 16:31:06 +08:00
 xbdsky
大神们会怎么处理?
A 邀请->B 邀请->C
问怎么避免 C 去邀请 A
5251 次点击
所在节点    PHP
44 条回复
xuanbg
2020-07-15 16:34:11 +08:00
先查一下目标用户是否存在,存在就不能邀请。
angryfish
2020-07-15 16:34:21 +08:00
要求过的放进 HashSet ?
keepeye
2020-07-15 16:38:47 +08:00
检查 A 是否有下级,有下级则不能再被邀请
xbdsky
2020-07-15 16:39:50 +08:00
@keepeye 我也是这样回答的,貌似面试的人不是很满意 哈哈
xupefei
2020-07-15 16:41:52 +08:00
union-find 算法。
jtwor
2020-07-15 16:42:13 +08:00
队列 栈
DJQTDJ
2020-07-15 16:43:05 +08:00
A 邀请 B
FLAG_A:0→1
FLAG_B:0

B 邀请 C
FLAG_B:0→1
FLAG_C:0

C 邀请 A
FLAG_A:1 所以直接不能邀请
evill
2020-07-15 16:43:48 +08:00
并查集???猜的
yousabuk
2020-07-15 16:50:34 +08:00
增加邀请和被邀请的 flag

具有邀请者 flag 不能被邀请。
具有被邀请的 flag 不能被再次邀请。

一次回答 2 个问题,不信他不满意。(第二个问题:如何避免 C 被 A 再次邀请?)
xkeyideal
2020-07-15 16:53:44 +08:00
并查集
coldmonkeybit
2020-07-15 16:58:21 +08:00
第一反应是栈
xbdsky
2020-07-15 17:00:50 +08:00
@yousabuk flag 我也说了,感觉没有什么特别好的办法的
rioshikelong121
2020-07-15 17:05:47 +08:00
双向链表成不成。。这个邀请链条应该不是很长吧。
yonoho
2020-07-15 17:06:06 +08:00
有向无环图?
framlog
2020-07-15 17:07:27 +08:00
并查集
newtype0092
2020-07-15 17:08:43 +08:00
你这没头没尾的啊。。。
邀请是什么意思,一个人能邀请几次?能被邀请几次?避免 C 去邀请 A 是因为什么规则?
John60676
2020-07-15 17:11:25 +08:00
环形链表?
hello2060
2020-07-15 17:15:38 +08:00
C 为啥不能邀请 A? 因为 A 邀请了 C? C 能邀请 A 邀请的其他人吗?如果都不能的话就是 UNION FIND, ABC 都有一个共同祖先 A, 只要共同祖先一样就不能邀请?
lv2016
2020-07-15 17:22:25 +08:00
我还真遇到过比较类似的情况,不过是在数据分析的时候碰到的。目的是为了邀请尽可能的获取高质量的用户而不是被薅羊毛。当时比较辣鸡,用了一个树来记录用户一级级邀请的情况....,判断方法和 9 楼一样
tcfenix
2020-07-15 17:22:26 +08:00

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

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

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

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

© 2021 V2EX