题解 | #牛的体重统计# java
牛的体重统计
https://www.nowcoder.com/practice/15276ab238c9418d852054673379e7bf
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param weightsA int整型一维数组
* @param weightsB int整型一维数组
* @return int整型
*/
public int findMode (int[] weightsA, int[] weightsB) {
// write code here
Map<Integer, Integer> wei = new HashMap<>();
for (int weight : weightsA) {
wei.put(weight, wei.getOrDefault(weight, 0) + 1);
}
for (int weight : weightsB) {
wei.put(weight, wei.getOrDefault(weight, 0) + 1);
}
int ans = -1;
int aans = 0;
for (Map.Entry<Integer, Integer> entry : wei.entrySet()) {
int key = entry.getKey();
int value = entry.getValue();
if (value >= ans) {
if (key > aans) {
ans = value;
aans = key;
}
}
}
return aans;
}
}
Java代码
该题考察的知识点是哈希表的使用。
代码中使用哈希表统计每个权重出现的次数,并找出出现次数最多的权重。算法遍历两个输入数组,分别将元素和对应的出现次数存储在哈希表 wei 中。然后,遍历哈希表,找到出现次数最多的权重,并将其返回。
通过使用 HashMap 来统计每个权重(整数值)在两个输入数组中出现的次数,然后在遍历过程中寻找出现次数最大的权重,如果有多个出现次数相同的权重,则选择最大的权重作为结果返回。