LeetCode·每日一题·2404. 出现最频繁的偶数元素·哈希

作者:小迅
链接:https://leetcode.cn/problems/most-frequent-even-element/solutions/2224016/ha-xi-zhu-shi-chao-ji-xiang-xi-by-xun-ge-x7fg/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

题目

LeetCode·每日一题·2404. 出现最频繁的偶数元素·哈希_第1张图片

 

思路

题意 -> 给定一个数组,返回出现次数最大的最小偶数。

两个要求:

  • 最大出现次数
    • 使用哈希表对数组中的元素出现次数进行统计,最后返回最大出现次数。本题由于数据量小,可以使用数组实现哈希表功能,再额外使用一个变量,记录当前最大出现次数
  • 最小偶数
    • 使用取余判断当前元素是否为偶数,再结合上一步中的最大出现次数,保存最大出现次数的最小偶数

代码注释超级详细

代码



int mostFrequentEven(int* nums, int numsSize){
    int hash[100001] = {0};
    int min = INT_MAX;
    int count = 0;
    for (int i = 0; i < numsSize; ++i) {//枚举所有元素
        ++hash[nums[i]];//记录出现次数
        if (nums[i] % 2 == 0) {//偶数
            if (hash[nums[i]] > count) {//大于最大出现次数
                count = hash[nums[i]];//记录并保存
                min = nums[i];
            } else if (hash[nums[i]] == count){//出现次数相同
                min = fmin(min, nums[i]);//保存最小值
            }
        }
    }
    return min == INT_MAX ? -1 : min;
}

作者:小迅
链接:https://leetcode.cn/problems/most-frequent-even-element/solutions/2224016/ha-xi-zhu-shi-chao-ji-xiang-xi-by-xun-ge-x7fg/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(LeetCode刷题笔记,哈希算法,leetcode,算法)