-1

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

答案 = 1

如何才能做到这一点

4

1 回答 1

1

(大部分)线性时间解决方案是使用 aHashMap<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()方法,这也可以在线性时间内完成。

于 2013-02-25T00:45:23.620 回答