求解一个序列中出现次数最多的元素问题,给定n个整数。编写一个实验程序找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个,用Java实现
时间: 2023-06-15 13:06:08 浏览: 257
可以使用HashMap来记录每个元素出现的次数,然后遍历一遍HashMap找出出现次数最多的元素并输出。如果有多个元素出现次数相同,则需要再遍历一遍原序列,找出其中最小的那个。
以下是Java代码实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < n; i++) {
if (map.containsKey(arr[i])) {
map.put(arr[i], map.get(arr[i]) + 1);
} else {
map.put(arr[i], 1);
}
}
int maxCount = 0;
int maxNum = 0;
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
int num = entry.getKey();
int count = entry.getValue();
if (count > maxCount) {
maxCount = count;
maxNum = num;
} else if (count == maxCount && num < maxNum) {
maxNum = num;
}
}
System.out.println(maxNum);
}
}
```
阅读全文