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