在使用数组保存计数器的C++中,要找到整数数组的模式,可以采取以下步骤:
以下是一个示例代码:
#include <iostream>
#include <unordered_map>
#include <vector>
std::pair<int, int> findMode(const std::vector<int>& nums) {
std::unordered_map<int, int> counter;
int maxCount = 0;
int mode = 0;
for (int num : nums) {
if (counter.find(num) != counter.end()) {
counter[num]++;
} else {
counter[num] = 1;
}
}
for (const auto& pair : counter) {
if (pair.second > maxCount) {
maxCount = pair.second;
mode = pair.first;
}
}
return std::make_pair(mode, maxCount);
}
int main() {
std::vector<int> nums = {1, 2, 3, 2, 1, 3, 3, 4, 5, 4, 4};
std::pair<int, int> result = findMode(nums);
std::cout << "Mode: " << result.first << ", Count: " << result.second << std::endl;
return 0;
}
这段代码使用了一个unordered_map来保存整数出现的次数,然后遍历哈希表找到出现次数最多的整数作为模式。在这个例子中,整数数组{1, 2, 3, 2, 1, 3, 3, 4, 5, 4, 4}的模式是整数3,出现了3次。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云