题目描述
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
示例 1:
代码语言:javascript复制输入:
nums1 = [1,3], nums2 = [2]
输出:
2.00000
解释:
合并数组 = [1,2,3] ,中位数 2
分析
首先使用concat方法将两个字符串连接起来,然后使用sort方法对其进行排序,注意:直接调用sort()方法是无法对负数进行排序的。要首先写一个比较函数。
最后求平均数,分两种情况:
1. 如果数组长度是奇数,则直接除2(别忘了求得是下标哦~ 要向下取整【比如 5/2 = 2.5 ,取2】)
2. 如果是偶数,则要邻近的两个数相减
最后的最后,给他们设置一个保留5位小数吧。
代码
代码语言:javascript复制 var findMedianSortedArrays = function (nums1, nums2) {
let ave
let nums = nums1.concat(nums2)
function sortNumber(a, b) {
return a - b
}
nums.sort(sortNumber)
console.log(nums)
let a = nums.length / 2
if (nums.length % 2 === 0) {
ave = (nums[a] nums[a - 1]) / 2
} else {
ave = nums[Math.floor(a)]
}
return ave.toFixed(5)
}