背景描述
请找出int类型数组中出现次数最多的元素
代码实现
package com.algorithm2;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
* 示例描述:请找出数组中出现次数最多的元素
*/
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;
}
}
运行结果