题目
- 给你一个整数数组
nums
,返回出现最频繁的偶数元素。如果存在多个满足条件的元素,只需要返回 最小 的一个。如果不存在这样的元素,返回 -1
。
思路
- 最终返回元素条件如下:
- 必须是偶数(num % 2 == 0)
- 出现次数最多
- 出现次数最多中值最小
解答代码
public int mostFrequentEven(int[] nums) {
int res[] = new int[100001];
int ans = -1;
int resNum = 100001;
for(int i = 0; i < nums.length; i++){
if(nums[i] % 2 == 0){
res[nums[i]]++;
if(res[nums[i]] > ans){
ans = res[nums[i]];
resNum = nums[i];
}
if(res[nums[i]] == ans){
ans = res[nums[i]];
if(nums[i] < resNum){
resNum = nums[i];
}
}
}
}
if(ans == -1){
return -1;
}
return resNum;
}