在线好友系统中的二维好友查询
问题说明
在一个在线好友系统中,每个用户都有一个好友列表,最多可以有500个好友。好友关系是单向的,即用户B可以是用户A的好友,但A不一定是B的好友。用户以ID形式表示,好友列表数据以文本形式给出,每行表示一个用户及其好友列表,好友ID按升序排列,列之间用制表符(\t
)分隔。
我们需要设计一种索引数据结构,以支持以下查询:
- 给定用户A和B,查询B是否是A的二维好友(即B是否是A的某个好友的好友)。
解题思路
为了高效地查询二维好友关系,我们可以使用以下数据结构:
-
用户好友列表:用一个哈希表(
unordered_map
)来存储每个用户及其好友列表。哈希表的键是用户ID,值是一个集合(set
或vector
)来存储好友ID。