图片授权基于 www.pixabay.com 相关协议
什么是中位数?
https://leetcode-cn.com/problems/median-of-two-sorted-arrays/
var findMedianSortedArrays = function (nums1, nums2) {
const mergeArr = nums1.concat(nums2);
const result = mergeArr.sort((a, b) => a - b)
//如果长度只有1,则直接返回
if (result.length === 1) return result[0]
//双指针计算数组
let len = (result.length - 1) / 2;
//如果是整数
if (len % 1 === 0) {
return result[len]
} else {
const smallNumber = Math.floor(len);
const bigNumber = Math.ceil(len);
return (result[smallNumber] + result[bigNumber]) / 2
}
};
首先,用 concat 把两个数组合并了,然后通过 sort 从小到大排了个序。个人认为 concat 和 sort 都算是 log 的时间复杂度。
下标中位数如果取余 1 为 0,则说明这是一个整数,如果不为 0 则说明是一个浮点数,把浮点数上下取整,并相加除2,就是中位数的值。
原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34631.html