4.寻找两个有序数组的中位数/寻找两个有序数组的第K个数

思路:将两个数组merge成一个数组help,建立三个工作索引,两个工作索引分别指向nums1,nums2,值小的填入help中。直到遍历完两个数组。最后对长度的奇偶性作出判断求出中位数即可。

class Solution {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
          //这里用一部分归并排序思想
          int m=nums1.length;
          int n=nums2.length;
          int help[]=new int[m+n];
          int i=0,j=0,k=0;//工作索引,用来遍历数组
          while(i>1];//长度为奇数则直接为中间索引
          else result=(help[(m+n)/2-1]+help[(m+n)>>1])*1.0/2;//长度为偶数,则中间索引-1和中间索引的中值
          return result;
    }
}

你可能感兴趣的:(4.寻找两个有序数组的中位数/寻找两个有序数组的第K个数)