题解 | #两个升序数组的中位数#

两个升序数组的中位数

https://www.nowcoder.com/practice/b3b59248e61f499482eaba636305474b?tpId=365&tqId=2479036&ru=/exam/oj&qru=/ta/spring-deliver-2024/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D365

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums1 int整型一维数组 
 * @param nums2 int整型一维数组 
 * @return double浮点型
 */
function Median( nums1 ,  nums2 ) {
    // write code here
    let list =nums1.concat(nums2).sort((a,b) => a-b);
    let size = list.length /2;
    let reslut = 0;
    if(size % 1 !== 0){
        reslut = list[Math.floor(size)]
    }else{
         reslut = (list[Math.floor(size)] + list[Math.floor(size -1)])/2;
    }
    return reslut;
}
module.exports = {
    Median : Median
};

描述:

给定两个长度为 n 和 m 的升序数组(后一个数一定大于等于前一个数),请你找到这两个数组中全部元素的中位数。

思路:

中位数,即为新数组最中间的数据,如果新数组的length为奇数时,若为9,则中位数需返回第5位的数据,对应的数组下标是4;

若length为偶数时,若为8,则中位数需要第4位和第5位数据之和,再除以2。

1、先将两个数组合并成一个数组,并且对数组进行升序操作,变成新数组list。

2、得到新数组list的长度,并且根据奇数和偶数的情况分别进行操作。在进行操作的时候,需要注意数组中第i个数据,对应的数组下标是i-1

全部评论

相关推荐

迷茫的大四🐶:那你问他上班之后老实了没
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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