拿下技术面上传简历

社交关系图共 10^9 个用户,平均出度 200,边存放在分布式 KV 上(一次邻居查询约 5ms),单机可用内存 64GB。现在要找出指定用户 A 的 3 度以内(含 3 度)的全部用户 ID。你选 BFS 还是 DFS?写出你的遍历控制逻辑,估算 frontier(当前层待扩展集合)的最大规模,并说明用什么结构做去重。

数据结构与算法图与搜索3-5 年知识点 1 个

面试官在考什么

考察在大规模图上对遍历策略的选型判断:能否用度数估算 frontier 规模、是否理解 BFS 的层序终止能力与 DFS 深度不可控的问题。

图遍历

回答框架 · 前两步

  1. 选 BFS:BFS 天然按层推进,扩展到第 3 层即可停止,不会触达 4 度以外的节点;DFS 一条路径走到底,访问深度和总访问量都不可控,且难以在“只到 3 度”处干净终止。
  2. frontier 规模估算:第 1 层约 200,第 2 层约 4×10^4,第 3 层约 8×10^6,峰值千万级 ID;按 8 字节计约几十至上百 MB,可放内存但需压缩或分片。

还有 3 条答案要点、 3 层追问、 4 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「数据结构与算法」方向页

同一能力域的其他题