图片授权基于 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