import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param weightsA int整型一维数组 
     * @param weightsB int整型一维数组 
     * @return int整型
     */
   public int findMode (int[] weightsA, int[] weightsB) {
	  // 哈希表 key用于存储100,200,300,400之类的体重 value用来存储100,200,300,400之类体重出现的频率
        HashMap<Integer, Integer> hashMap = new HashMap<>();
	  // 分别遍历两个weight数组,记录体重和体重的频率,不了解getOrDefault的可以去查一下,挺简单
        for (int i = 0; i < weightsA.length; i++) {
            hashMap.put(weightsA[i],hashMap.getOrDefault(weightsA[i],0)+1);
        }
        for (int i = 0; i < weightsB.length; i++) {
            hashMap.put(weightsB[i],hashMap.getOrDefault(weightsB[i],0)+1);
        }
	  // 用entryset去遍历hash表,优先级value越大越好,在value相等的情况下,体重越重的优先级越高
        Set<Map.Entry<Integer, Integer>> entries = hashMap.entrySet();
	  // 频率次数
        int freq = 0;
	  // 最终返回的结果
        int result = 0;
        for (Map.Entry<Integer, Integer> entry : entries) {
            Integer value = entry.getValue();
            if(value>freq){
                freq = value;
                result = entry.getKey();
            }else if(value==freq){
                if(entry.getKey()>result){
                    result = entry.getKey();
                }
            }
        }
        return result;
    }
}

本题解题思路分析:

1.哈希表存储

2.hashMap存储和取出

3.注意getOrDefault这个API

4.哈希表遍历

本题解题思路分析:

1.用哈希表取存储 体重和体重出现的频率

2.遍历哈希表,比较出在频率次数出现最多的情况下,最重的牛,返回即可

本题使用编程语言: Java