leetcode:4. 寻找两个正序数组的中位数

125 阅读1分钟

题目: 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。

/*
 * @lc app=leetcode.cn id=4 lang=javascript
 *
 * [4] 寻找两个正序数组的中位数
 */

// @lc code=start
/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number}
 */
var findMedianSortedArrays = function(nums1, nums2) {
    const allNums = [...nums1, ...nums2].sort((a, b ) => a-b);
    const allLenght = allNums.length;
    const isDouble = allLenght%2 === 0 
    const middle = isDouble ? [allLenght / 2 - 1, allLenght / 2] : Math.floor(allLenght / 2);
    const res = Array.isArray(middle) ? (allNums[middle[0]] + allNums[middle[1]]) / 2 : allNums[middle];
    return res
};