给你一个整数数组 nums 返回出现最频繁的偶数元素。如果存在多个满足条件的元素只需要返回 最小 的一个。如果不存在这样的元素返回 -1 。c++
首先,我们需要统计数组中每个元素出现的次数。
可以使用一个哈希表来记录每个元素出现的次数,键为元素的值,值为该元素出现的次数。
然后,遍历哈希表,找到出现次数最多的偶数元素。
最后,返回出现次数最多的偶数元素。如果不存在这样的元素,返回 -1。
以下是完整的 C++ 代码实现:
#include <unordered_map>
#include <vector>
int findMostFrequentEvenElement(std::vector<int>& nums) {
std::unordered_map<int, int> count;
int maxCount = 0;
int mostFrequentEvenElement = -1;
for (int num : nums) {
if (num % 2 == 0) {
count[num]++;
if (count[num] > maxCount || (count[num] == maxCount && num < mostFrequentEvenElement)) {
maxCount = count[num];
mostFrequentEvenElement = num;
}
}
}
return mostFrequentEvenElement;
}
你可以使用该函数来测试你的输入数据。例如:
int main() {
std::vector<int> nums = {1, 2, 2, 3, 3, 3};
int result = findMostFrequentEvenElement(nums);
std::cout << result << std::endl; // 输出 2
nums = {1, 1, 1, 3, 3, 3};
result = findMostFrequentEvenElement(nums);
std::cout << result << std::endl; // 输出 -1
nums = {2, 2, 2, 4, 4, 4};
result = findMostFrequentEvenElement(nums);
std::cout << result << std::endl; // 输出 2
return 0;
}
原文地址: https://www.cveoy.top/t/topic/i2Xr 著作权归作者所有。请勿转载和采集!