题目考察的知识点是:

合并数组,排序

题目解答方法的文字分析:

给定三个有序数组 herd1、herd2 和 herd3,分别表示三个牛群的牛的体重,并且每个数组都按照体重从小到大的顺序进行排序。我们的任务是找出这三个正序数组合并后的中位数。为了实现时间复杂度为 O(log (m+n+p)) 的算法解决此问题,我们可以使用类似于归并排序的思想,同时维护三个指针。

本题解析所用的编程语言:

java语言。

完整且正确的编程代码:

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param herd1 int整型一维数组
     * @param herd2 int整型一维数组
     * @param herd3 int整型一维数组
     * @return double浮点型
     */
    public double findMedianSortedArray (int[] herd1, int[] herd2, int[] herd3) {
        // write code here
        int fal = herd1.length;
        int sal = herd2.length;
        int mal = herd3.length;
        int[] result = new int[fal + sal + mal];
        System.arraycopy(herd1, 0, result, 0, fal);
        System.arraycopy(herd2, 0, result, fal, sal);
        System.arraycopy(herd3, 0, result, fal + sal, mal);
        Arrays.sort(result);
        int n = result.length;
        if (n % 2 == 0) {
            return (result[n / 2] + result[n / 2 - 1]) / 2.0;
        } else {
            return result[n / 2];
        }
    }

}