数组中的最大重复频率

时间:2013-02-25 00:16:57

标签: java algorithm

以最小的时间复杂度在java中查找数组中最大重复频率的最快方法是什么 A = [1,2,3,4,1,1]

ans = 1

怎么做呢

1 个答案:

答案 0 :(得分:1)

(主要)线性时间解决方案是使用HashMap<Integer, Integer>并构建A中出现的所有值的直方图。

HashMap<Integer, Integer> m = new HashMap<Integer, Integer>();
for(int x : A)
{
    Integer v = m.get(x);
    if (null == v) {v = Integer.valueOf(0);}
    m.put(x, ++v);
}

遍历整个地图并返回具有最大值的条目。 使用entrySet()方法,这也是在线性时间内完成的。