/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * find median in two sorted array
 * @param arr1 int整型一维数组 the array1
 * @param arr2 int整型一维数组 the array2
 * @return int整型
 */
function findMedianinTwoSortedAray( arr1 ,  arr2 ) {
    // write code here
   const length = (arr1.length + arr2.length)/2;
   const list = [];
   arr1.forEach((item) => {
    list.push(item);
   })
   arr2.forEach((item) => {
    list.push(item);
   })
   list.sort((a,b) => a-b);
   return list[length -1 ];

}
module.exports = {
    findMedianinTwoSortedAray : findMedianinTwoSortedAray
};

思路:

题目要求的是,找到两个数组的上中位数,如果数组的位数为8位,则找到第4小的的数据,进行返回即可。

第一步:将两个数组的长度加起来,除以2,拿到需要返回的数字的位数k。

第二步:将两个数组合并起来,得到一个新数组list。并且将数组进行升序排序。这里需要注意,上中位数指的是,中间小的数据,所以必须进行排序。

第三步:直接返回新数组list中,第k个数据。这里容易出错,结果不是返回list[k],而是返回list[k-1],因为数字下标是从0开始的,第k个数据,在数组中的下标是k-1。