题解 | #三个牛群中位数#

三个牛群中位数

https://www.nowcoder.com/practice/8bc0369faf7c4ac5ab336f38e859db05

知识点:

数组操作

分析:

这段代码是一个用于计算三个已排序整数数组的中位数的Java方法。让我们逐步解释这段代码的功能和实现。

1. 首先,代码定义了三个整型数组 `herd1`、`herd2` 和 `herd3`,分别表示三个已排序数组。

2. 然后,代码通过 `herd1.length`、`herd2.length` 和 `herd3.length` 获取了每个数组的长度,并将它们分别赋值给整型变量 `a`、`b` 和 `c`。

3. 接下来,代码创建了一个新的整型数组 `result`,该数组的长度为三个原始数组长度之和。这是为了存储将三个数组合并后的结果。

4. 接着,通过 `System.arraycopy()` 方法,代码将 `herd1`、`herd2` 和 `herd3` 数组的元素分别拷贝到新的 `result` 数组中。通过这个步骤,我们将三个数组合并成一个已排序的大数组。

5. 接下来,使用 `Arrays.sort()` 方法对 `result` 数组进行排序,以确保数组中的元素按升序排列。

6. 接着,代码获取已排序 `result` 数组的长度,并将其赋值给整型变量 `n`。

7. 接下来,代码检查数组长度 `n` 是否为偶数,通过 `n % 2 == 0` 进行判断。如果数组长度为偶数,则返回中间两个元素的平均值作为中位数。

8. 最后,如果数组长度为奇数,则返回位于数组中间位置的元素作为中位数。

总结:这段代码实现了将三个已排序整型数组合并为一个已排序数组,并计算合并后数组的中位数。如果合并后的数组长度为偶数,则返回中间两个元素的平均值作为中位数;如果长度为奇数,则返回位于数组中间位置的元素作为中位数。

编程语言:

JAVA

完整代码:

    public double findMedianSortedArray (int[] herd1, int[] herd2, int[] herd3) {
        int a = herd1.length;
        int b = herd2.length;
        int c = herd3.length;
        int[] result = new int[a + b + c];
        System.arraycopy(herd1, 0, result, 0, a);
        System.arraycopy(herd2, 0, result, a, b);
        System.arraycopy(herd3, 0, result, a + b, c);
        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];
        }
    }

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 11:31
点赞 评论 收藏
分享
05-23 20:31
已编辑
武汉大学 Java
内向的柠檬精在研究求...:注意把武大标粗标大 本地你俩不是乱杀
实习进度记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务