6176. 出现最频繁的偶数元素

简介: 6176. 出现最频繁的偶数元素

 给你一个整数数组 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

    思路:

    直接暴力:申请最大长度的数组空间,当出现相应偶数时,就在数组对应的位置进行对其权值++;最后对dp数组进行遍历,取重复出现最大次数的第一个即可。

    上代码:

    class Solution {
        public int mostFrequentEven(int[] nums) {
                int[] dp = new int[100000];
                for(int i=0; i<nums.length; i++){
                    if(nums[i]%2 == 0){
                        dp[nums[i]]++;
                    }
                }
                int max = -1,flag = -1;
                for(int j=0; j<dp.length; j++){
                    if(dp[j] > 0 && dp[j] > max){
                        max = dp[j];
                        flag = j;
                    }
                }
            return flag;
        }
    }

    image.gif


    相关文章
    【剑指offer】-调整数组顺序使奇数位于偶数前面-13/67
    【剑指offer】-调整数组顺序使奇数位于偶数前面-13/67
    |
    4月前
    |
    算法 测试技术 C#
    【位运算 试填法】【推荐】3022. 给定操作次数内使剩余元素的或值最小
    【位运算 试填法】【推荐】3022. 给定操作次数内使剩余元素的或值最小
    |
    4月前
    |
    搜索推荐 算法
    在冒泡排序算法中,为什么每次比较相邻的元素时都要进行交换?
    【2月更文挑战第8天】【2月更文挑战第21篇】在冒泡排序算法中,为什么每次比较相邻的元素时都要进行交换?
    28 1
    剑指offer 20. 调整数组顺序使奇数位于偶数前面
    剑指offer 20. 调整数组顺序使奇数位于偶数前面
    51 0
    |
    算法 前端开发 程序员
    调整数组元素顺序
    调整数组元素顺序
    调整数组元素顺序
    |
    算法
    Day1——数组 二分查找、移除一个数
    Day1——数组 二分查找、移除一个数
    107 0
    Day1——数组 二分查找、移除一个数
    |
    算法 容器
    12.调整数组顺序,使得奇数在前,偶数在后
    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
    117 0
    一道题,最小操作次数使数组元素相等引发的思考
    给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。
    104 0
    一道题,最小操作次数使数组元素相等引发的思考
    调整数组顺序使奇数位于偶数前面(简单难度)
    调整数组顺序使奇数位于偶数前面(简单难度)
    80 0