java数组出现次数最多的数,找出数组中出现次数最多的那个数
时间: 2023-08-08 12:08:17 浏览: 103
好的,我会尽力回答您的问题。以下是一种可能的实现方式:
```java
public static int findMostFrequent(int[] arr) {
if (arr == null || arr.length == 0) {
throw new IllegalArgumentException("数组不能为空");
}
// 记录每个数出现的次数
Map<Integer, Integer> countMap = new HashMap<>();
for (int i : arr) {
countMap.put(i, countMap.getOrDefault(i, 0) + 1);
}
// 找出出现次数最多的数
int maxCount = 0;
int mostFrequent = arr[0];
for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
if (entry.getValue() > maxCount) {
maxCount = entry.getValue();
mostFrequent = entry.getKey();
}
}
return mostFrequent;
}
```
这段代码首先对数组中的每个数进行计数,然后再遍历计数结果,找到出现次数最多的数并返回。时间复杂度是 $O(n)$,空间复杂度是 $O(n)$,其中 $n$ 是数组长度。
阅读全文