题解 | #农场牛群众数#
农场牛群众数
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; } }