寻找两个正序数组的中位数

1.题目描述![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200903092613317.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjQ5ODEwMg==,size_16,color_FFFFFF,t_70#pic_center)

2.解题思路

在这里插入图片描述
代替指针利用pop方法来吧数据弹出数组,减少了指针i,j的边界条件的判断,更加通俗易懂。

3.代码实现

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number}
 */
var findMedianSortedArrays = function(nums1, nums2) {
   let pre, cur
   let length = nums2.length + nums1.length
   let i = 0 
   while( i++ < parseInt(length / 2) + 1) {
       pre = cur
       if (nums1.length !== 0 && nums2.length !== 0) {
           cur = nums1[nums1.length -1 ] > nums2[nums2.length - 1] ? nums1.pop() : nums2.pop()
       } else if (nums2.length ===0 ) {
           cur = nums1.pop()
       } else {
           cur = nums2.pop()
       }
   }
   let res = cur
   if (length % 2 === 0) {
       res = (cur + pre) / 2
   }
   return res
};
posted @ 2020-09-03 09:29  jacksonni  阅读(163)  评论(0)    收藏  举报