求两个有序数组的中位数

package com.zyl;

import java.util.ArrayList;

public class TowArrMedian {
	public static double findMedianSortedArrays(int[] nums1, int[] nums2) {
		int i=0,j=0;
		ArrayList<Integer> arr = new ArrayList<>();
		while(i!=nums1.length&&j!=nums2.length) {
				if(nums1[i]<=nums2[j]) {
					arr.add(nums1[i]);
					i++;
				}else {
					arr.add(nums2[j]);
					j++;
				}
		}
		if(i==nums1.length) {
			for(;j<nums2.length;j++) {
				arr.add(nums2[j]);
			}
		}
		if(j==nums2.length) {
			for(;i<nums1.length;i++) {
				arr.add(nums1[i]);
			}
		}
		if(arr.size()%2==0) {
			return ((double)arr.get(arr.size()/2)+arr.get((arr.size()/2)-1))/2;
		}else {
			return arr.get(arr.size()/2);
		}
		
	}

	public static void main(String[] args) {
		int[] arr1 = {1,2};
		int[] arr2 = {3,4};
		System.out.println(findMedianSortedArrays(arr1,arr2));
	}
}

猜你喜欢

转载自blog.csdn.net/qq_25944759/article/details/82961439
今日推荐