上千万或上亿数据(有重复),统计其中出现次数最多的前 N 个数据。
Given tens or hundreds of millions of data items (with duplicates), how do you find the top N items with the highest frequency?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: medium
分类: TopK, Big Data
标签: TopN, HashMap, Heap
参考答案摘要
核心思路 当数据规模达到上千万或上亿时,现代机器的内存通常可以容纳统计结构,因此可以直接在内存中完成统计。 使用 hash_map 、搜索二叉树或红黑树来统计每个数据出现的次数。 统计完成后,取出出现次数最多的前 N 个数据。 可以使用小根堆(堆大小为 N)来维护当前出现次数最多的 N 个元素。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。