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

news/2024/11/9 3:04:22/

来源:力扣(LeetCode)

描述:

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

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

示例 1:

输入:nums = [0,1,2,2,4,4,1]
输出:2
解释:
数组中的偶数元素为 024 ,在这些元素中,24 出现次数最多。
返回最小的那个,即返回 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

方法:哈希表计数

遍历数组 nums,并且使用哈希表 count 记录偶数元素的出现次数。使用 res 和 ct 分别记录当前出现次数最多的元素值以及对应的出现次数。遍历哈希表中的元素,如果元素的出现次数大于 ct 或者出现次数等于 ct 且元素值小于 res,那么用 res 记录当前遍历的元素值,并且用 ct 记录当前遍历的元素的出现次数。

代码:

class Solution {
public:int mostFrequentEven(vector<int>& nums) {unordered_map<int, int> count;for (auto x : nums) {if (x % 2 == 0) {count[x]++;}}int res = -1, ct = 0;for (auto &p : count) {if (res == -1 || p.second > ct || p.second == ct && res > p.first) {res = p.first;ct = p.second;}}return res;}
};

执行用时:56 ms, 在所有 C++ 提交中击败了83.27%的用户
内存消耗:37.1 MB, 在所有 C++ 提交中击败了70.63%的用户
复杂度分析
时间复杂度:O(n),其中 n 是数组 nums 的长度。遍历数组与哈希表都需要 O(n)。
空间复杂度:O(n)。保存哈希表需要 O(n)。
author:LeetCode-Solution


http://www.ppmy.cn/news/42755.html

相关文章

https是什么?

HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;是基于HTTP协议的安全版本&#xff0c;它使用SSL/TLS协议对数据进行加密和身份验证&#xff0c;从而保证通信的安全性和完整性。 HTTPS和HTTP的区别&#xff1a; 安全性&#xff1a;HTTPS通过SSL/TLS协议对数…

对数据库中索引及索引的数据结构的理解

索引就像是书或者论文的目录, 通过目录能够快速定位到某一章节, 加快了查找的效率, 减少插入和删除操作; 那么知道索引是干啥的了, 那索引的底层数据结构是什么呢??? 索引1 简述2 索引考虑的数据结构1 简述 如果数据库中没有索引, 查找的时候就会遍历整个表; 如果针对的是顺…

科普:java与C++的区别

Java与C是两种广泛使用的编程语言&#xff0c;它们在某些方面存在不同之处。本文将详细介绍Java与C的区别。 一、C与Java的历史 C语言是由Bjarne Stroustrup在20世纪80年代初期开发的一种面向对象编程语言&#xff0c;它是C语言的扩展。Java语言是由Sun Microsystems公司于20…

Python pandas和numpy用法参考(转)

以下是转载&#xff1a;Python pandas用法 - 简书介绍 在Python中&#xff0c;pandas是基于NumPy数组构建的&#xff0c;使数据预处理、清洗、分析工作变得更快更简单。pandas是专门为处理表格和混杂数据设计的&#xff0c;而NumPy更适合处...https://www.jianshu.com/p/840ba1…

今日刷题 动态dp比较简单状态机模型

题目描述&#xff1a;1186. 删除一次得到子数组最大和 一个很好的题解&#xff0c;受益匪浅 比较通俗易懂的dp - 删除一次得到子数组最大和 - 力扣&#xff08;LeetCode&#xff09;&#xff1a; 我们定义f ( i ) 和 g ( i )&#xff0c;其中 f( i ) 表示不删除元素的情况下…

2.29、共享内存(2)

2.29、共享内存&#xff08;2&#xff09;1、问题1&#xff1a;操作系统如何知道一块共享内存被多少个进程关联&#xff1f;2、问题2&#xff1a;可不可以对共享内存进行多次删除 shmctl3、共享内存和内存映射的区别1、问题1&#xff1a;操作系统如何知道一块共享内存被多少个进…

EMC经典问答85问(78-81问)

78、磁珠与电感有什么区别&#xff1f;高频时磁珠怎么滤波&#xff1f; 电感是用来控制 PCB 内的 EMI。对电感而言&#xff0c;它的感抗是和频率成正比的。这可以由公式&#xff1a;XL 2πfL 来说明&#xff0c;XL 是感抗&#xff08;单位是Ω&#xff09;。例如&#xff1a;一…

【react 全家桶】初始化脚手架

本人大二学生一枚&#xff0c;热爱前端&#xff0c;欢迎来交流学习哦&#xff0c;一起来学习吧。 <专栏推荐> &#x1f525;&#xff1a;js专栏 &#x1f525;&#xff1a;vue专栏 &#x1f525;&#xff1a;react专栏 文章目录10 【初始化脚手架】1.什么是 React 脚手…