列表

详情


2404. 出现最频繁的偶数元素

给你一个整数数组 nums ,返回出现最频繁的偶数元素。

如果存在多个满足条件的元素,只需要返回 最小 的一个。如果不存在这样的元素,返回 -1

 

示例 1:

输入:nums = [0,1,2,2,4,4,1]
输出:2
解释:
数组中的偶数元素为 0、2 和 4 ,在这些元素中,2 和 4 出现次数最多。
返回最小的那个,即返回 2 。

示例 2:

输入:nums = [4,4,4,9,2,4]
输出:4
解释:4 是出现最频繁的偶数元素。

示例 3:

输入:nums = [29,47,21,41,13,37,25,7]
输出:-1
解释:不存在偶数元素。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int mostFrequentEven(vector<int>& nums) { } };

golang 解法, 执行用时: 40 ms, 内存消耗: 6.8 MB, 提交时间: 2022-09-15 23:12:44

func mostFrequentEven(nums []int) int {
	hashMap := make(map[int]int)
	var res, cnt int
	for _, num := range nums {
		if num % 2 == 0 {
			hashMap[num]++
			if hashMap[num] > cnt || (hashMap[num] == cnt && num < res) {
				res = num
				cnt = hashMap[num]
			}
		}
	}
	if cnt == 0 {
		return -1
	}
	return res
}

python3 解法, 执行用时: 76 ms, 内存消耗: 15.2 MB, 提交时间: 2022-09-15 23:10:51

class Solution:
    def mostFrequentEven(self, nums: List[int]) -> int:
        cnt = Counter(x for x in nums if x % 2 == 0)
        if len(cnt) == 0: return -1
        max_cnt = max(cnt.values())
        return min(x for x, c in cnt.items() if c == max_cnt)

python3 解法, 执行用时: 60 ms, 内存消耗: 15.4 MB, 提交时间: 2022-09-15 23:08:53

class Solution:
    def mostFrequentEven(self, nums: List[int]) -> int:
        ans = -1
        c = collections.Counter(nums)
        for k, v in c.items():
            if k % 2 == 0 and v >= c[ans]:
                if k < ans or v > c[ans]:
                    ans = k
        return ans

上一题