在C++中,处理数组中元素出现次数的问题通常涉及到数据结构和算法。常用的数据结构包括数组、哈希表(unordered_map)等。算法方面,可以使用哈希表来记录每个数字出现的次数,然后遍历哈希表来统计出现至少两次的数字个数。
unordered_map
,可以简化代码实现。以下是一个C++程序,用于统计数组中有多少个数字至少出现2次:
#include <iostream>
#include <vector>
#include <unordered_map>
int countDuplicates(const std::vector<int>& numbers) {
std::unordered_map<int, int> countMap;
for (int num : numbers) {
countMap[num]++;
}
int duplicates = 0;
for (const auto& pair : countMap) {
if (pair.second >= 2) {
duplicates++;
}
}
return duplicates;
}
int main() {
std::vector<int> numbers = {1, 2, 3, 2, 4, 3, 5, 6, 7, 8, 8};
int result = countDuplicates(numbers);
std::cout << "Number of duplicates: " << result << std::endl;
return 0;
}
通过上述方法,可以有效地统计数组中至少出现两次的数字个数。
领取专属 10元无门槛券
手把手带您无忧上云