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.我们可以考虑用一个键值对来对重复元素进行统计,键值是元素值,对应的是重复元素的个数。