两个有序数组找中位数
/** * 寻找两个有序数组的中位数 */ public class FindMedianSortedArrays { public static void main(String[] args) { int[] arr1={1,3,4,5}; int[] arr2={1,2,3,6,9}; System.out.println(findMedianSortedArrays(arr1,arr2)); } //思路:把两个有序数组合并为一个有序数组,再求中位数 public static double findMedianSortedArrays(int[] nums1, int[] nums2) { int[] arr=new int[nums1.length+nums2.length]; int index1=0,index2=0; for(int i=0;i<arr.length;i++){ if(index1<nums1.length&&index2<nums2.length){ arr[i]=nums1[index1]<nums2[index2]?nums1[index1++]:nums2[index2++]; }else if(index1==nums1.length){ arr[i]=nums2[index2++]; }else { arr[i]=nums1[index1++]; } } if(arr.length%2==1){ return (double) arr[arr.length/2]; } if(arr.length%2==0){ return (double) (arr[arr.length/2]+arr[arr.length/2-1])/2; } return 0; }