[每日一题]2404.出现最频繁的偶数元素

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

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

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

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

提示:

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

Solutions

class Solution {
    public int mostFrequentEven(int[] nums) {
        Map<Integer, Integer> map = new HashMap<>();
        int key = -1;
        int val = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] % 2 == 0) {
                if (!map.containsKey(nums[i])) {
                    map.put(nums[i], 0);
                }
                map.put(nums[i], map.get(nums[i]) + 1);
                if (val < map.get(nums[i])) {
                    key = nums[i];
                    val = map.get(nums[i]);
                } else if (val == map.get(nums[i])) {
                    if (nums[i] < key) {
                        key = nums[i];
                    }
                }
            }
        }
        return key;
    }
}

Ideas