【发布时间】:2011-11-21 09:46:28
【问题描述】:
假设在一个未排序的数组中有三个元素,它们的出现次数都超过了元素总数的四分之一。
找到这些元素的最有效方法是什么?此问题的非在线版本和在线版本均适用。
谢谢!
编辑
我指的非在线版本是:这个数组是完整指定的。在线版本意味着数组元素一次一个来。
除了时间复杂度之外,我还要求空间紧凑。
免责声明:这不是家庭作业!我认为这是研究级别的问题。
【问题讨论】:
-
什么是非在线版本的问题?
-
对数组进行传递,将元素放入 hashmap,其中 key 是一个元素,value 是出现次数。然后只取3个最高元素。这将花费 O(n) 时间和相同的空间。
标签: algorithm