题目描述
个人思路
题目为求两有序序列中位数。将两序列排序取中位数即可,也满足题目O(
l
o
g
(
m
+
n
)
log(m+n)
log(m+n))。
代码如下:
double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) {
double med=0;
int m=0,n=0;
int Size=nums1Size+nums2Size;
int nums[Size];
for(int i=0;i<Size;i++){
if(m==nums1Size) {nums[i]=nums2[n++];continue;}
if(n==nums2Size) {nums[i]=nums1[m++];continue;}
if(nums1[m]<nums2[n]) nums[i]=nums1[m++];else nums[i]=nums2[n++];
}
if(Size%2) return nums[Size/2];
else return (nums[Size/2]+nums[(Size-1)/2])/2.0;
}