拿下技术面上传简历

有一个每天批量导入的账户关联数据:约 1000 万个账户,每天新增 200 万条'这两个账户属于同一个人'的边,导入完成后要在线回答'这两个账户是不是同一个人',查询约 5000 QPS。你会用并查集,还是每次查询做一次图搜索?如果用并查集,路径压缩和按秩合并分别解决什么问题?如果业务后来要求支持'撤销某条关联',这个结构还能用吗?

数据结构与算法线性与树结构3-5 年知识点 1 个

面试官在考什么

考察对并查集摊还复杂度来源的理解,以及'只能合并不能分裂'这一限制在真实业务下如何应对。

并查集

回答框架 · 前两步

  1. 每次查询做 BFS/DFS 是 O(V+E),1000 万节点规模下 5000 QPS 完全不可行;并查集把合并做成近似 O(1),查询就是两次 find,量级匹配。
  2. 路径压缩压低树高(把 find 路径上的点直接挂根),按秩/按大小合并避免矮树挂到高树下形成长链,两者同时用复杂度才接近 O(α(n))。

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

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

延伸阅读

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

同一能力域的其他题