题解 | #牛的体重排序#

牛的体重排序

https://www.nowcoder.com/practice/1afd5afef2aa49a8a39b63bb9d2821f9

知识点

分治,归并排序

解题思路

先将两个数组根据大小放大一个新数组中,升序排序。如果一次遍历后,A数组没放完就放A数组,B数组没放完就放B数组。

排好序后,如果新数组长度为奇数,那么中位数就是n/2位置,否则就是n/2-1和n/2取和/2了。

Java题解

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param weightsA int整型一维数组 
     * @param weightsB int整型一维数组 
     * @return double浮点型
     */
    public double findMedianSortedArrays (int[] weightsA, int[] weightsB) {
        // write code here
        int n = weightsA.length, m = weightsB.length;
        int[] arr = new int[n + m];
        int i = 0, j = 0, l = 0;
        while(i < n && j < m){
            if(weightsA[i] > weightsB[j]){
                arr[l++] = weightsB[j++];
            } else {
                arr[l++] = weightsA[i++];
            }
        }
        while(i < n){
            arr[l++] = weightsA[i++];
        }
        while(j < m){
            arr[l++] = weightsB[j++];
        }
        int k = m + n;
        double ans = (k%2 == 1) ? arr[k / 2] : ((arr[k / 2 - 1] + arr[k / 2]) / 2);
        return ans;
    }
}

全部评论

相关推荐

2024-12-21 10:42
已编辑
江西软件职业技术大学 Java
新宿站不停:该提升学历就提升学历,菜了就多练。没事找牛马公司虐自己是吧? 谁没事说自己“经验少”,这不自己把自己塞剎鼻hr嘴里找🐴吗
点赞 评论 收藏
分享
02-08 20:56
已编辑
南京工业大学 Java
在等offer的比尔很洒脱:我也是在实习,项目先不说,感觉有点点小熟悉,但是我有点疑问,这第一个实习,公司真的让实习生去部署搭建和引入mq之类的吗,是不是有点过于信任了,我实习过的两个公司都是人家正式早搭好了,根本摸不到部署搭建的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务