PHP 面试?应该不是问算法,是业务设计问题。 邀请注册的话不存在此问题,因为 A 已经是老用户了。 这个问题一般存在于多级分销(代理、师徒等)关系链中,也就是:A 是 B 的师傅,B 是 C 的师傅,如何避免 C 成为 A 的师傅而导致系统混乱。其实只要打破循环就行了,也就是只允许单向链,不允许回流。通用做法是:规定每个人成为师傅前必须先拜师,或者说每个代理都必须有其上家代理。而最源头的 BOSS 是系统号—没有师傅,不参与抽成。
系统号 ... 邀请 A, A 邀请 B,B 邀请 C 。C 邀请 A 时因为 A 已经有师傅了,邀请失败。