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