登录/注册

leetcode第四题寻找两个正序数组的中位数

用户头像管理员130阅读

原题地址

JavaScript,Leetcode

JavaScript,Leetcode

解:

  1. 一共有两个数组,需要进行数组合并
  2. 数组需要排序,而且需要判断数组长度的奇数偶数
  3. 如果是奇数就去数组长度除二减0.5如果是偶数就取两个数一个是数组长度除二减一,一个是数组长度除二
  4. 例如:[1,2,3,4,5]取数组长度的一半减0.5就是索引值2也就是数组3
  5. [1,2,3,4]取数组长度除二减一,一个是数组长度除二,也就是2,和4
var findMedianSortedArrays = function (nums1, nums2) {
    let arr = nums1.concat(nums2); //合并数组
    arr = arr.sort((n1, n2) => n1 - n2); //排序
    let isOdd = arr.length % 2; //检测数组是不是奇数
    let index = isOdd ? arr.length / 2 - 0.5 : [arr.length / 2 - 1, arr.length / 2]; //算出奇数偶数,算出要取的索引值
    let value = isOdd ? arr[index] : (arr[index[0]] + arr[index[1]]) / 2
    return value;
};
console.log(findMedianSortedArrays([1, 2], [3, 4]));
Preview
登录后评论