拿下技术面上传简历

有一个 200GB 的日志文件,每行是一个 IP 地址,单机内存 16GB,要求输出出现次数最多的前 100 个 IP。请写出核心代码(语言不限,可用伪代码描述关键部分),并说明你为什么这么选。如果换成 200TB、10 台机器,你的方案哪里要改?

代码能力与调试排障现场编码3-5 年知识点 1 个

面试官在考什么

判断候选人能否在内存装不下数据的硬约束下,自己推导出「分片 + 局部 Top-K + 归并」的两阶段算法,而不是背一个 HashMap 统计的模板。

手写算法

回答框架 · 前两步

  1. 识别单机内存约束,明确不能全量加载,必须两阶段:分片 → 局部统计取 Top-K → 全局归并
  2. 分片必须按 key 哈希(如 hash(ip) % N),保证同一个 IP 一定落到同一个分片,否则计数会被拆散

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

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

同一能力域的其他题