一看题目难度是“难”,吓到我了,上午想了一会就看讨论组的解法了,解法都很发杂呀!!!下午来到实验室看了一篇中文博客,说有两种解决方案,第一种就是将两个数组合并成一个数组,我的解法就是这样子的,竟然ac掉了!!
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Sum4 { private static double findMedianSortedArrays(int[] nums1, int[] nums2) { int sumLen=nums1.length+nums2.length; int median = sumLen%2; int middle = sumLen/2; int[] num = new int[sumLen]; int k=0; for (int i = 0,j=0; i < nums1.length||j<nums2.length; ) { if(i<nums1.length&&j<nums2.length){ if(nums1[i]>=nums2[j]){ num[k]= nums2[j]; j++; }else { num[k]= nums1[i]; i++; } }else if(i==nums1.length&&j!=nums2.length){ num[k] = nums2[j]; j++; }else if(i!=nums1.length&&j==nums2.length){ num[k] = nums1[i]; i++; } System.out.println(num[k]); k++; } if(median==0){ double a= num[middle]; double b = num[middle-1]; return (a+b)/2; }else { return num[middle]; } } public static void main(String[] args) { int[] nums1 = new int[]{1,3}; int[] nums2 = new int[]{2,3}; Double double1 = findMedianSortedArrays(nums1,nums2); System.out.println(double1); } }