import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param weightsA int整型一维数组
     * @param weightsB int整型一维数组
     * @return int整型
     */
    public static LinkedList<LinkedList<Integer>> lists = new LinkedList<>();
    public int findMode (int[] weightsA, int[] weightsB) {
        // write code here
        Map<Integer, Integer> map = new HashMap<>();
        int index1 = 0, index2 = 0;
        while (index1 < weightsA.length && index2 < weightsB.length) {
            map.put(weightsA[index1], map.getOrDefault(weightsA[index1], 0) + 1);
            map.put(weightsB[index2], map.getOrDefault(weightsB[index2], 0) + 1);
            index1++;
            index2++;
        }
        while (index1 < weightsA.length ) {
            map.put(weightsA[index1], map.getOrDefault(weightsA[index1], 0) + 1);
            index1++;
        }
        while (index2 < weightsB.length) {
            map.put(weightsB[index2], map.getOrDefault(weightsB[index2], 0) + 1);
            index2++;
        }
        List<Map.Entry<Integer, Integer>> list = new ArrayList<>(map.entrySet());
        list.sort(new Comparator<Map.Entry<Integer, Integer>>() {
            @Override
            public int compare(Map.Entry<Integer, Integer> o1,
                               Map.Entry<Integer, Integer> o2) {
                if (o1.getValue() < o2.getValue()) {
                    return 1;
                } else if (o1.getValue() == o2.getValue()) {
                    return o2.getKey() - o1.getKey();
                } else {
                    return -1;
                }
            }
        });
        int weight = 0;
        for (Map.Entry<Integer, Integer> myMap : list) {
            weight = myMap.getKey();
            break;
        }
        return weight;
    }

}

本题考察的知识点主要是重复元素的统计,所用编程语言是java.我们可以考虑用一个键值对来对重复元素进行统计,键值是元素值,对应的是重复元素的个数。