假设在非排序数组中有三个元素,所有这些元素都是元素总数的四分之一以上。
找到这些元素的最有效方法是什么?这两个问题都适用于非在线和在线版本。
谢谢!
修改
我所指的非在线版本是:此数组已完整指定。在线版本意味着数组元素一次出现一个。
除了时间复杂性之外,我还要求空间紧张。
免责声明:这不是家庭作业!我认为这是研究水平的问题。答案 0 :(得分:13)
最多记住三个元素和计数器。
小的常量额外空间,O(n),无排序。
答案 1 :(得分:2)
创建条目的直方图,对其进行排序,并获取三个最大的条目。