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

2404. 出现最频繁的偶数元素 - 力扣(LeetCode)

可以通过以下步骤来解决这个问题:

  1. 遍历数组,统计所有偶数元素的出现频率。

  2. 找出频率最高的偶数,如果存在多个频率相同的偶数,返回最小的那个。

  3. 如果数组中没有偶数,返回 -1。

下面是实现代码:

from collections import Counter

def mostFrequentEven(nums):
    # 过滤出所有的偶数
    even_nums = [num for num in nums if num % 2 == 0]
    
    # 如果没有偶数,返回 -1
    if not even_nums:
        return -1
    
    # 统计每个偶数的频率
    count = Counter(even_nums)
    
    # 找出频率最高的偶数,如果有多个,返回最小的
    max_freq = max(count.values())
    result = min(num for num, freq in count.items() if freq == max_freq)
    
    return result

示例:

print(mostFrequentEven([1, 2, 2, 4, 4, 4]))  # 输出 4
print(mostFrequentEven([1, 3, 5]))           # 输出 -1
print(mostFrequentEven([0, 2, 2, 4, 4]))    # 输出 2

解释:

  1. 对于输入 [1, 2, 2, 4, 4, 4],偶数有 2 和 4,其中 4 出现了 3 次,而 2 出现了 2 次。因此,返回 4。

  2. 对于输入 [1, 3, 5],没有偶数元素,因此返回 -1。

  3. 对于输入 [0, 2, 2, 4, 4],2 和 4 都出现了两次,但是最小的偶数是 2,所以返回 2。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值