首先,我们需要统计数组中每个元素出现的次数。

可以使用一个哈希表来记录每个元素出现的次数,键为元素的值,值为该元素出现的次数。

然后,遍历哈希表,找到出现次数最多的偶数元素。

最后,返回出现次数最多的偶数元素。如果不存在这样的元素,返回 -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;
}
给你一个整数数组 nums 返回出现最频繁的偶数元素。如果存在多个满足条件的元素只需要返回 最小 的一个。如果不存在这样的元素返回 -1 。c++

原文地址: https://www.cveoy.top/t/topic/i2Xr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录