給定兩個大小爲 m 和 n 的有序數組 nums1
和 nums2
。javascript
請你找出這兩個有序數組的中位數,而且要求算法的時間複雜度爲 O(log(m + n))。java
你能夠假設 nums1
和 nums2
不會同時爲空。算法
nums1 = [1, 3]
nums2 = [2]
則中位數是 2.0
複製代碼
nums1 = [1, 2]
nums2 = [3, 4]
則中位數是 (2 + 3)/2 = 2.5複製代碼
/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number} */
var findMedianSortedArrays = function(nums1, nums2) {
nums1.push(...nums2);
nums1.sort((a, b) => {
return a-b;
});
let len = nums1.length;
if(len%2 === 1) {
let mid = (len-1)/2+1-1;
return nums1[mid];
}else{
let mid1 = len/2-1;
let mid2 = mid1+1;
return (nums1[mid1]+nums1[mid2])/2;
}
};複製代碼