给定 n 个正整数,编写一个java实验程序找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
时间: 2024-03-02 07:50:42 浏览: 176
delete--number.rar_K._delete namber_delete number_给定n位正整数
5星 · 资源好评率100%
好的,以下是代码实现:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
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();
}
Map<Integer, Integer> map = new HashMap<>();
int maxCount = 0;
int minNum = Integer.MAX_VALUE;
for (int num : nums) {
int count = map.getOrDefault(num, 0) + 1;
map.put(num, count);
if (count > maxCount || (count == maxCount && num < minNum)) {
maxCount = count;
minNum = num;
}
}
System.out.println(minNum);
}
}
```
代码思路:
1. 读入 n 个正整数,并存储到数组 nums 中。
2. 创建一个哈希表 map,用于记录每个数出现的次数。
3. 遍历 nums 数组,对于每个数 num,从 map 中获取它出现的次数 count,然后将其更新为 count + 1,并存回 map 中。
4. 如果 count 大于当前记录的最大出现次数 maxCount,或者 count 等于 maxCount 但 num 更小,则更新 maxCount 和 minNum。
5. 遍历完 nums 数组后,minNum 即为出现次数最多的数中的最小数,输出即可。
希望能够帮到你!
阅读全文