LeetCode4 Java

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Victordas/article/details/84065498

别打我。。时间复杂度有点高 但是通过了哈哈哈哈

import java.util.ArrayList;
import java.util.Arrays;

//给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。
//
//请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。
//
//你可以假设 nums1 和 nums2 不同时为空。
//
//示例 1:
//
//nums1 = [1, 3]
//nums2 = [2]
//
//中位数是 2.0
//示例 2:
//
//nums1 = [1, 2]
//nums2 = [3, 4]
//
//中位数是 (2 + 3)/2 = 2.5


public class LeetCode4 {

	public static void main(String[] args) {
		LeetCode4 L4 = new LeetCode4();
		int[] nums1 = {1,3};
		int[] nums2 = {2,4};
		System.out.println(L4.findMedianSortedArrays(nums1, nums2));
	}
	
	public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int[] nums_all = new int[nums1.length + nums2.length];
        System.arraycopy(nums1, 0, nums_all, 0, nums1.length);
        System.arraycopy(nums2, 0, nums_all, nums1.length, nums2.length);
        BubbleSort(nums_all);
        System.out.println(Arrays.toString(nums_all));
        int len = nums_all.length;
        double middle = (len%2==0)? (nums_all[len/2]+nums_all[len/2 -1])/2.0:nums_all[(len-1)/2.0];
        return middle;
    }
	
	public static int[] BubbleSort(int[] s){
		int n = s.length;
		for(int i=0; i<n; i++){
			for(int j=0; j<n-i-1; j++){
				if(s[j]>s[j+1]){
					int temp = s[j+1];
					s[j+1] = s[j];
					s[j] = temp;
				}
			}
		}
		return s;
	}
}

猜你喜欢

转载自blog.csdn.net/Victordas/article/details/84065498