logo

有一个 1G 文件,每行一个词(不超过 16 字节),内存 1M,返回频数最高的 100 个词。

Given a 1GB file where each line is a word (<=16 bytes) and memory is limited to 1MB, how do you return the top 100 most frequent words?

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: hard

分类: 大数据计算, TopK问题, 文件分治

标签: Hash分桶, 文件拆分, Trie, HashMap, 最小堆, 归并

参考答案摘要

核心答案 思路: Hash 分桶 + 小文件统计 + TopK + 归并 。 Step 1:分桶拆分 顺序读文件,对每个词 x 计算 hash(x) % 5000 ,写入 5000 个小文件( x0..x4999 ),使每个文件约 200KB。若某些文件仍超过 1MB,则继续按相同方式递归拆分,直到每个文件不超过 1MB。 Step 2:统计与局部 Top100 对每个小文件统计词频(可用 tri...

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。

← 返回面试题库

有一个 1G 文件,每行一个词(不超过 16 字节),内存 1M,返回频数最高的 100 个词。

Hardalgorithmsdata-structuressystem-design

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案