两正序数组的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number}
*/
var findMedianSortedArrays = function (nums1, nums2) {
const len1 = nums1.length;
const len2 = nums2.length;
let mainArr = null;
let sideArr = null
if (len1 <= len2) {
mainArr = nums2
sideArr = nums1
} else {
mainArr = nums1
sideArr = nums2
}
for (let i = 0; i < sideArr.length; i++) {
for (let j = 0; j < mainArr.length; j++) {
if (sideArr[i] <= mainArr[0]) {
mainArr.unshift(sideArr[i])
break
} else if (sideArr[i] >= mainArr[mainArr.length - 1]) {
mainArr.push(sideArr[i])
break
} else if (sideArr[i] >= mainArr[j] && sideArr[i] <= mainArr[j + 1]) {
mainArr.splice(j + 1, 0, sideArr[i])
break
}
}
}
const len = mainArr.length
if (/\./.test(len / 2)) {//说明是小数
const center = Math.floor(len / 2);
return mainArr[center]
} else {
const midLeft = len / 2 - 1;
const midRight = len / 2;
const result = mainArr[midLeft] + mainArr[midRight]
return result / 2
}
};