访谈:一段时间内列表中的前N个整数

时间:2016-05-02 15:18:59

标签: java algorithm data-structures

我最近被问到一个面试问题,在一段时间内找到N(10,20)中的热门List个整数。 List是在5秒的常规间隔期间动态添加的元素。您能告诉我如何使用正确的数据结构和算法解决这个问题。

2 个答案:

答案 0 :(得分:1)

这些问题通常不是很复杂。

最后20个条目中最高的10个:最多20个元素的ArrayList,最后添加可能会在开头删除一个。然后将它们添加到新的SortedSet(如TreeSet),并按相反的顺序取第10个。见@iced

如果一个队列适合,那很好。 (它并非完全如此。)但最重要的是正确性。看到你无法对ArrayList进行排序。当许多重复时,可能会出现少于10个顶部数字。添加并发保护等的要点。

答案 1 :(得分:0)

您可以使用Java Priority Queue /最大堆。