如何使用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; } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。