如何使用java代码获取数组中出现次数最多的元素呢?
下文笔者讲述一次算法考试中的题目:"找出出现次数最多的元素",具体的实现方式如下所示
实现思路:
1.借助一个辅助数组对元素的出现次数进行记载
2.输出出现次数最多的元素
例:找出数组中出现次数最多的元素
public class FindMaxCounter {
public static void main(String[] args) {
int array[] = { 1, 2, 3, 2, 3, 3 };
int number = findNumber(array);
System.out.println("出现次数最多的数字是:" + number);
}
public static int findNumber(int[] array) {
// 建立一个新数组保存元素出现的次数,其长度与原数组一致
int counterArray[] = new int[array.length];
// 将每个数字出现的次数存入counterArray
for (int i = 0; i < array.length; i++) {
int counter = 0;
for (int j = 0; j < array.length; j++) {
if (array[j] == array[i]) {
counter++;
}
}
counterArray[i] = counter;
}
// 从counterArray找出最大值,即现次数最多的元素
int maxCounter = counterArray[0];
int maxCounterIndex = 0;
for (int i = 0; i < counterArray.length - 1; i++) {
if (counterArray[i + 1] > maxCounter) {
maxCounter = counterArray[i + 1];
maxCounterIndex = i + 1;
}
}
// 找出出现次数最多的元素
int number = array[maxCounterIndex];
return number;
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


