找出一个数组中出现次数最多的那个元素。:哈希表:JAVA
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
找出一个数组中出现次数最多的那个元素。
输入描述:
第一行输入一个整数n(不大于20) 第二行输入n个整数,
输出描述:
找出n个整数中出现次数最多的那个整数,如果有多个,输出最先出现的那个
示例1
输入
4 1 2 2 3
输出
2
代码:
import java.util.Arrays;
import java.util.Scanner;
import java.util.HashMap;
public class Main {
// 定义一个静态方法 findMostFrequentElement,用于找到数组中出现次数最多的元素
public static int findMostFrequentElement(int[] nums) {
// 创建一个哈希表来存储每个元素及其出现的次数
HashMap<Integer, Integer> countMap = new HashMap<>();
// 遍历数组,将每个元素的出现次数记录到哈希表中
for (int num : nums) {
countMap.put(num, countMap.getOrDefault(num, 0) + 1);
}
// 初始化变量来跟踪出现次数最多的元素和其次数
int mostFrequentElement = nums[0];
int maxCount = countMap.get(mostFrequentElement);
// 遍历哈希表以找到出现次数最多的元素
for (int key : countMap.keySet()) {
if (countMap.get(key) > maxCount) {
mostFrequentElement = key;
maxCount = countMap.get(key);
}
}
// 返回出现次数最多的元素
return mostFrequentElement;
}
// 主方法,程序入口
public static void main(String[] args) {
// 创建扫描器对象,用于从控制台读取输入
Scanner scanner = new Scanner(System.in);
// 读取数组的长度
int n = scanner.nextInt();
// 创建数组并读取数组元素
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = scanner.nextInt();
}
// 调用 findMostFrequentElement 方法,找到数组中出现次数最多的元素
int result = findMostFrequentElement(nums);
// 输出结果
System.out.println(result);
}
}