【发布时间】:2019-01-05 16:02:50
【问题描述】:
一个接受两个参数(数组、排名)并返回一个数组的函数。
该函数应根据排名返回重复的数字,例如: 如果ranking参数为5,函数会返回最重复的5个数字,即使有10个重复的数字,函数也应该只返回重复次数最多的5个,因为ranking = 5。
我正在寻找有效的解决方案 O(N) 来解决这个问题。
我知道我们可以使用哈希映射来计数,然后对其进行排序,然后将返回的数组限制为“排名”变量,但这个解决方案不是 O(N)。
【问题讨论】:
-
您能否提供一个或两个输入数组和所需输出的示例?我对
most duplicate numbers的含义有些困惑。另外,我可能有误解,但是函数如何决定返回哪些 N个元素? -
我们在这里处理什么,文件?数据库?两者/其他?来源是什么?
-
发给我的帖子不清楚,可能过于宽泛。我出去了。
-
@FunkFortyNiner 你不是在处理文件或数据库,只是存储在内存中的变量。
-
您似乎不太可能在 O(n) 中
count and then sort。
标签: php algorithm sorting duplicates numbers