2404. 出现最频繁的偶数元素
给你一个整数数组 nums
,返回出现最频繁的偶数元素。
如果存在多个满足条件的元素,只需要返回 最小 的一个。如果不存在这样的元素,返回 -1
。
示例 1:
输入:nums = [0,1,2,2,4,4,1]
输出:2
解释:
数组中的偶数元素为 0、2 和 4 ,在这些元素中,2 和 4 出现次数最多。
返回最小的那个,即返回 2 。
题解
function mostFrequentEven(nums) {
const cnt = new Map(); // 创建一个Map对象
for (const x of nums) { // 遍历数组中的每个数
if (x % 2 === 0) { // 判断该数是否为偶数
cnt.set(x, (cnt.get(x) || 0) + 1); // 将偶数x和对应的出现次数加入Map中
}
}
let ans = -1; // 初始化结果为-1
let mx = 0; // 初始化最大出现次数为0
for (const [x, v] of cnt.entries()) { // 遍历Map中的所有键值对
if (mx < v || (mx === v && ans > x)) { // 如果当前偶数出现的次数更多,或者两个偶数的出现次数相等,但是x更小,则更新ans和mx
ans = x;
mx = v;
}
}
return ans; // 返回出现次数最多的偶数
}