【发布时间】:2017-01-17 01:42:27
【问题描述】:
我最近在一次采访中被问到一个问题。您将如何在十亿个字符串的列表中找到前 10 个最长的字符串? 我的回答是我们需要编写一个比较器来比较 2 个字符串的长度,然后使用 TreeSet(Comparator) 构造函数。 一旦您开始在 Treeset 中添加字符串,它将按照定义的比较器的排序顺序进行排序。 然后只需弹出 Treeset 的前 10 个元素。
面试官对此并不满意。争论是,要保存十亿个字符串,我必须使用超级计算机。
有没有其他数据结构可以处理这种数据?
【问题讨论】:
-
阅读此数据结构trie
-
面试官想了解优先级队列(最小堆存储十个最长字符串)。
标签: string data-structures collections comparator treeset