查找具有最佳优化时间复杂度的数组中最常出现的数字的总和

Finding the sum of the most commonly occurring number in an array with best optimized time complexity

如果我有一个数组 {2,3,4,5,6,5,7},它的输出应该是 10,因为 5 是最常出现两次的整数。重要的是,我想让这个程序优化到它的最佳时间复杂度,同时说明我如何计算它以及 space 复杂度,所有这些都在 Java 中。

我正在尝试使用 Treemap,但不知道它是否是最佳解决方案或如何在 Java 中编写最佳优化代码以及其他计算。请帮忙。

最好的解决方案是使用桶数组,您在数组上 运行 一次 O(n),然后计算每个数字出现的次数。 在 处找到最大存储桶并打印 - bucket_value*bucket_number。