首先,我们需要统计数组中每个元素出现的频次。可以使用一个字典来记录每个元素以及对应的频次。

然后,遍历字典,找到频次最高的偶数元素,如果存在多个频次相同的偶数元素,返回最小的一个。如果没有找到偶数元素,返回 -1。

下面是使用 Python 实现的代码:

def findMostFrequentEvenElement(nums):
    freq = {}
    for num in nums:
        if num % 2 == 0:
            if num in freq:
                freq[num] += 1
            else:
                freq[num] = 1
    
    most_frequent_even_element = None
    max_freq = 0
    for num, f in freq.items():
        if f > max_freq or (f == max_freq and num < most_frequent_even_element):
            most_frequent_even_element = num
            max_freq = f
    
    if most_frequent_even_element is None:
        return -1
    else:
        return most_frequent_even_element

这个算法的时间复杂度是 O(n),其中 n 是数组的长度。遍历数组需要 O(n) 的时间,遍历字典需要 O(k) 的时间,其中 k 是字典的大小,最坏情况下 k 可能等于 n/2,因此时间复杂度是 O(n)。空间复杂度是 O(k),即字典的大小。

给你一个整数数组 nums 返回出现最频繁的偶数元素。如果存在多个满足条件的元素只需要返回 最小 的一个。如果不存在这样的元素返回 -1 。

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

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