题解 | #牛的体重统计# 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 来统计每个权重(整数值)在两个输入数组中出现的次数,然后在遍历过程中寻找出现次数最大的权重,如果有多个出现次数相同的权重,则选择最大的权重作为结果返回。