0%

4.13每日

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)) &#123; // 如果当前偶数出现的次数更多,或者两个偶数的出现次数相等,但是x更小,则更新ans和mx
      ans = x;
      mx = v;
    &#125;
  &#125;
  return ans; // 返回出现次数最多的偶数
&#125;