「每日LeetCode」2022年10月13日

本文最后更新于:2023年3月19日 晚上

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

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

Category Difficulty Likes Dislikes
algorithms Easy (54.70%) 12 -

Tags
Companies
给你一个整数数组 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 解释:不存在偶数元素。

提示:

  • 1 <= nums.length <= 2000
  • 0 <= nums[i] <= 105

Discussion | Solution

思路

按 map 记录之后再排序选出最小的即可

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
* @lc app=leetcode.cn id=2404 lang=javascript
*
* [2404] 出现最频繁的偶数元素
*/

// @lc code=start
/**
* @param {number[]} nums
* @return {number}
*/
var mostFrequentEven = function (nums) {
const map = {};
for (const num of nums) {
if (num % 2 !== 0) continue;
if (map[num]) map[num]++;
else map[num] = 1;
}
const arr = Object.entries(map);
if (!arr.length) return -1;
arr.sort((a, b) => {
if (a[1] > b[1]) return -1;
else return 1;
});
return +arr[0][0];
};
// @lc code=end