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

三个牛群中位数

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

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
        List<Integer> ve = new ArrayList<>();
        for (int num : herd1)
            ve.add(num);
        for (int num : herd2)
            ve.add(num);
        for (int num : herd3)
            ve.add(num);
        int n = ve.size();
        Collections.sort(ve);
        if (n % 2 == 1)
            return ve.get(n / 2);
        else
            return (ve.get(n / 2) + ve.get(n / 2 - 1)) / 2.0;
    }
}

该代码使用的编程语言是Java。

这道题目考察了数组的遍历和排序,以及列表(List)的操作。

代码的实现步骤如下:

  1. 创建一个空的列表 ve,用于存储所有输入数组的元素。
  2. 遍历 herd1 数组的每个元素,将其添加到 ve 列表中。
  3. 遍历 herd2 和 herd3 数组的每个元素,将它们也添加到 ve 列表中。
  4. 获取 ve 列表的长度,并将其保存在变量 n 中。
  5. 对 ve 列表进行排序,以便后续计算中位数。
  6. 若 n 是奇数,则返回 ve 列表中的第 (n / 2) 个元素作为中位数。
  7. 若 n 是偶数,则返回 (ve.get(n / 2) + ve.get(n / 2 - 1)) / 2.0 的结果。这里使用了整数除法和类型转换以确保结果为浮点数。

全部评论

相关推荐

07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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