一个文本文件大约有一万行,每行一个词,统计其中出现频率最高的前 10 个词,并分析时间复杂度。
Given a text file with about 10,000 lines where each line contains one word, how do you find the top 10 most frequent words and analyze the time complexity?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: medium
分类: TopK, Text Processing
标签: Trie, Heap, Time Complexity
参考答案摘要
解题思路 该问题重点在于时间效率。 使用 Trie 树 统计每个词出现的次数,时间复杂度为 O(n * le) ,其中 le 表示单词的平均长度。 统计完成后,使用堆结构找出出现频率最高的前 10 个词,时间复杂度为 O(n * log10) 。 整体时间复杂度取两者中的较大值,即 max(O(n * le), O(n * log10)) 。 扩展:100 万个数中找出最大的 100 个数 方案一...
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。