上周,我参加了一些大型IT公司的采访。一个问题让我有点疑惑。下面是对问题的准确描述。(来自其中一个面试问题网站)
鉴于数据集,
A,B,A,C,A,B,A,D,A,B,A,C,A,B,A,E,A,B,A,C,A,B,A,D,A,B,A,C,A,B,A,F
可以缩减为
(A; 16); (B; 8); (C; 4); (D; 2); (E; 1); (F; 1):
使用(值,频率)格式。
总共m个这些元组,没有特定的顺序存储。设计一个O(m)算法,该算法返回数据集的第k阶统计量。 m是元组的数量,而不是n,它是数据集中元素的总数。
答案 0 :(得分:2)
您可以使用Quick-Select来解决此问题。
天真:
有几个细节: