04.寻找两个有序数组的中位数
题目:
第一次提交:
1 class Solution { 2 public double findMedianSortedArrays(int[] nums1, int[] nums2) { 3 //目标: 将2个有序数组合并为一个有序数组 4 int index01 = (nums1.length+nums2.length-1)/2; 5 int index02 = (nums1.length+nums2.length)/2; 6 int[] nums3 = new int[nums1.length+nums2.length]; 7 int i=0; 8 int j=0; 9 int k=0; 10 while(i!=nums1.length||j!=nums2.length){ 11 if(i==nums1.length){ 12 for(;j!=nums2.length;j++){ 13 nums3[k++] = nums2[j]; 14 } 15 //do nums2 16 }else if(j==nums2.length){ 17 //do nums1 18 for(;i!=nums1.length;i++){ 19 nums3[k++] = nums1[i]; 20 } 21 }else{ 22 if(nums1[i]<nums2[j]){ 23 nums3[k++]=nums1[i++]; 24 }else{ 25 nums3[k++]=nums2[j++]; 26 } 27 } 28 } 29 return (nums3[index01]+nums3[index02])/2.0; 30 31 32 } 33 }
结果:
我吃惊了,第一次居然就通过了,问题是这题目的等级是:难。
第一次提交只是能够将算法实现,时间复杂度不可估计 O(N2)都有。需要继续改进