首页 > 试题广场 >

两个升序数组的中位数

[编程题]两个升序数组的中位数
  • 热度指数:1188 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个长度为 n 和 m 的升序数组(后一个数一定大于等于前一个数),请你找到这两个数组中全部元素的中位数。

数据范围: ,数组中的元素满足
示例1

输入

[1,2,3,4,5],[6,7,8,9]

输出

5
示例2

输入

[1,2,3,8,9],[4,5,6,7]

输出

5
示例3

输入

[1,3,4],[1,4,4]

输出

3.5
    public double Median (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
        // write code here
        nums1.addAll(nums2);
        Collections.sort(nums1);
        int n=nums1.size();
        double t=0;
        if(n%2 ==0) t=(double)(nums1.get(n/2 -1)+ nums1.get(n/2))/2;
        else t=nums1.get(n/2);
        return t;
    }

发表于 2022-06-11 20:29:26 回复(0)