class Solution {
public:
int mostFrequentEven(vector<int>& nums) {
}
};
2404. 出现最频繁的偶数元素
给你一个整数数组 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
原站题解
golang 解法, 执行用时: 40 ms, 内存消耗: 6.8 MB, 提交时间: 2022-09-15 23:12:44
func mostFrequentEven(nums []int) int { hashMap := make(map[int]int) var res, cnt int for _, num := range nums { if num % 2 == 0 { hashMap[num]++ if hashMap[num] > cnt || (hashMap[num] == cnt && num < res) { res = num cnt = hashMap[num] } } } if cnt == 0 { return -1 } return res }
python3 解法, 执行用时: 76 ms, 内存消耗: 15.2 MB, 提交时间: 2022-09-15 23:10:51
class Solution: def mostFrequentEven(self, nums: List[int]) -> int: cnt = Counter(x for x in nums if x % 2 == 0) if len(cnt) == 0: return -1 max_cnt = max(cnt.values()) return min(x for x, c in cnt.items() if c == max_cnt)
python3 解法, 执行用时: 60 ms, 内存消耗: 15.4 MB, 提交时间: 2022-09-15 23:08:53
class Solution: def mostFrequentEven(self, nums: List[int]) -> int: ans = -1 c = collections.Counter(nums) for k, v in c.items(): if k % 2 == 0 and v >= c[ans]: if k < ans or v > c[ans]: ans = k return ans