我必须在双数组中找到出现次数最多的元素。我是这样做的:
int max = 0;
for (int i = 0; i < array.length; i++) {
int count = 0;
for (int j = 0; j < array.length; j++) {
if (array[i]==array[j])
count++;
}
if (count >= max)
max = count;
}
该程序可以运行,但它太慢了!我必须找到更好的解决方案,有人可以帮助我吗?
原文由 Blackecho 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新:
您可以使用 HashMap 来计算双精度数组中每个唯一元素的出现次数,这将:
伪代码 将是这样的:
部分代码解决方案,让您了解如何使用 HashMap:
我将留下一个练习,说明如何在之后遍历 HashMap 以找到具有最高值的键;但如果你遇到困难,只需添加另一条评论,我会给你更多提示 =)