c++如何寻找数组中出现次数最多的数
时间: 2024-10-16 07:20:02 浏览: 64
c++-剑指offer题解之数组中出现次数超过一半的数字
在 C++ 中,找到数组中出现次数最多的元素,你可以使用哈希表(unordered_map 或者 std::map)来记录每个元素的出现次数,然后遍历一次数组找出最大出现次数对应的元素。下面是一个简单的示例:
```cpp
#include <iostream>
#include <unordered_map>
using namespace std;
int findMaxFrequency(int arr[], int n) {
unordered_map<int, int> freqMap;
// 遍历数组,更新频率映射
for (int i = 0; i < n; i++) {
freqMap[arr[i]]++;
}
// 初始化最大频率和最大出现次数元素
int maxFreq = 0, maxElement = -1;
// 遍历映射,查找最大频率及其对应元素
for (const auto& pair : freqMap) {
if (pair.second > maxFreq) {
maxFreq = pair.second;
maxElement = pair.first;
}
}
return maxElement;
}
int main() {
int arr[] = {1, 4, 6, 4, 2, 4, 8, 4};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "出现次数最多的元素是: " << findMaxFrequency(arr, n) << endl;
return 0;
}
```
在这个示例中,`findMaxFrequency`函数接收一个整数数组和它的长度,通过统计每个元素出现的次数,并保存到哈希表中,最后返回出现次数最多的元素。
阅读全文