题解 | #农场牛群众数#

农场牛群众数

https://www.nowcoder.com/practice/de4e4039a45247579ffeef81ccf44266

知识点:哈希表

思路:我们使用一个HashMap来统计每个编号的牛的数量。我们还记录了当前众数的出现次数(maxCount)和众数的值(mode)。然后,我们遍历每头新加入的牛,更新计数器和众数,并将当前的众数添加到结果数组中。

编程语言:java

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return int整型一维数组
     */
    public int[] findMode(int[] arr) {
        int n = arr.length;
        int[] result = new int[n];
        Map<Integer, Integer> countMap = new HashMap<>();
        int maxCount = 0;
        int mode = -1;

        for (int i = 0; i < n; i++) {
            int num = arr[i];
            int count = countMap.getOrDefault(num, 0) + 1;
            countMap.put(num, count);

            if (count > maxCount || (count == maxCount && num > mode)) {
                maxCount = count;
                mode = num;
            }

            result[i] = mode;
        }

        return result;
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务