当前位置: 首页 > article >正文

​力扣解法汇总2404. 出现最频繁的偶数元素

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你一个整数数组 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

解题思路:

* 解题思路:
* 把出现数字和次数统计到map中,然后遍历map的key,
* 如果key不为偶数,则跳过;
* 如果key<maxTimes,则跳过;
* 如果key<maxTimes,则更新maxTimes和maxKey;
* 如果key<maxKey,则更新maxKey;

代码:

public class Solution2404 {

    public int mostFrequentEven(int[] nums) {
        HashMap<Integer, Integer> map = new HashMap<>();
        Arrays.stream(nums).boxed().forEach(integer -> map.put(integer, map.getOrDefault(integer, 0) + 1));
        int maxTimes = 0;
        int maxKey = -1;
        for (Integer key : map.keySet()) {
            if (key % 2 != 0) {
                continue;
            }
            Integer time = map.get(key);
            if (time < maxTimes) {
                continue;
            }
            if (time > maxTimes) {
                maxTimes = time;
                maxKey = key;
                continue;
            }
            if (key < maxKey) {
                maxKey = key;
            }
        }
        return maxKey;
    }
}


http://www.kler.cn/a/16512.html

相关文章:

  • JQuery封装的ajax
  • Android 配置默认输入法
  • SpringBoot(八)使用AES库对字符串进行加密解密
  • 鸿蒙进阶篇-属性动画-animateTo转场动画
  • pycharm快速更换虚拟环境
  • Cesium加载大量点数据卡顿处理办法
  • 【华为机试】HJ1 字符串最后一个单词的长度
  • 【Vue面试题】vue组件之间如何传值通信
  • pytest - Getting Start
  • 8个免费使用ChatGPT网站,部分可使用gpt4
  • 如何将 github pages 迁移到 vercel 上托管
  • C# ref和out用法和区别
  • 【MySQL入门指南】主键与唯一键的使用与区别
  • 华为OD机试 - 日志首次上报最多积分(Python)
  • CTF ASCII码 密码解密题 简单
  • 《*** 法治思想学习纲要》学习辅导
  • Windows环境安装Elasticsearch和Kibana
  • 模式识别是什么意思
  • 武忠祥老师每日一题||不定积分基础训练(五)
  • RabbitMQ 发布订阅模式,routing路由模式,topic模式
  • 2023-5-2面试题学习
  • 746. 使用最小花费爬楼梯
  • Cell:癌症研究的下一个问题是什么?
  • 大学生学java编程的就业前景怎么样?我来聊聊自己的见解
  • 通过Python的PIL库给图片添加文本水印
  • 【网络协议详解】——GNS3的使用(学习笔记)