public int findMode (int[] A, int[] B) { // write code here int m = A.length; int n = B.length; int[] merged = new int[m + n]; int i = 0, j = 0, k = 0; // 合并两个牛群的体重 while (i < m && j < n) { if (A[i] <= B[j]) { merged[k++] = A[i++]; } else { merged[k++] = B[j++]; } } // 将剩余的牛群体重加入合并后的数组 while (i < m) { merged[k++] = A[i++]; } while (j < n) { merged[k++] = B[j++]; } // 统计每个体重出现的次数 Map<Integer, Integer> count = new HashMap<>(); int maxCount = 0; int mode = 0; for (int weight : merged) { count.put(weight, count.getOrDefault(weight, 0) + 1); if (count.get(weight) > maxCount) { maxCount = count.get(weight); mode = weight; } else if (count.get(weight) == maxCount) { mode = Math.max(mode, weight); } } return mode; }