LeetCode4 - Median of Two Sorted Arrays(两个有序数组合并为一个有序数组)

题目链接:
https://leetcode.com/problems/median-of-two-sorted-arrays/description/

class Solution {
//两个有序数组合并为一个有序数组
    public static void Merge(int[] a,int[] b, int[] tmp) {
        int aLen = a.length;
        int bLen = b.length;
        int i = 0;
        int j = 0;
        int k = 0;
        while(i < aLen && j < bLen) {
            if(a[i] < b[j]) {
                tmp[k++] = a[i++];
            } else {
                tmp[k++] = b[j++];
            }
        }
        while(i < aLen) {
            tmp[k++] = a[i++];
        }
        while(j < bLen) {
            tmp[k++] = b[j++];
        }
    }
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        double ans = 0;
        int aLen = nums1.length;
        int bLen = nums2.length;
        int[] tmp = new int[aLen + bLen];
        Merge(nums1, nums2, tmp);
        if((aLen + bLen) % 2 == 0 ) {
            ans = ((double)tmp[(aLen + bLen)/2 -1]+(double) tmp[(aLen + bLen)/2])/2;
            System.out.println("The median is (" + tmp[(aLen + bLen)/2 -1] +" + " + tmp[(aLen + bLen)/2] +
            ")/2 = " + ans);
        } else {
            ans = tmp[(aLen + bLen)/2];
            System.out.println("The median is " + ans);
        }
        return ans;
    }
}

猜你喜欢

转载自blog.csdn.net/u011523796/article/details/79718447