简单
技术面试0 次浏览微博的用户关注关系可以用图来表示,每个用户是一个节点,关注关系是边。请设计一个算法,计算给定用户的二度好友(即好友的好友)数量。
微博算法工程师
算法工程师图算法社交关系
答题要点
推荐的答题框架:使用广度优先搜索(BFS)算法来遍历图。关键要点如下:1. 构建图结构:将用户关注关系存储为图的邻接表。可以使用字典来表示。2. 初始化队列:将给定用户加入队列,并标记为已访问。3. 进行 BFS:从队列中取出节点,遍历其邻居节点,将未访问的邻居节点加入队列,并标记为已访问。同时记录当前的层数,当层数达到 2 时停止遍历。4. 统计二度好友数量:遍历完第二层后,统计未被标记为已访问的节点数量。示例话术:我会先构建用户关注关系的图结构,然后使用 BFS 算法从给定用户开始遍历。在遍历过程中,记录当前的层数,当层数达到 2 时停止。最后,统计未被标记为已访问的节点数量,即为二度好友数量。