此题还是没有改掉自己代码胡乱的毛病啊,debug了很久才找到了原因。
double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) {
int flag=0;
double res=0;
int sum=nums1Size+nums2Size;
if(sum%2==0) flag=1;
int p1,p2;
p1=p2=0;
int temp[sum];
int len=nums1Size+nums2Size;
if(nums1Size==0&&nums2Size==0) return 0;
for(int i=0;i<nums1Size+nums2Size;i++){
if(p1<nums1Size&&p2<nums2Size){
temp[i]=nums1[p1]<nums2[p2]?nums1[p1]:nums2[p2];
if(nums1[p1]<nums2[p2]){
p1++;
}
else p2++;
continue;
}
if(p1<nums1Size){
temp[i]=nums1[p1];p1++;
continue;
}
if(p2<nums2Size){
temp[i]=nums2[p2];p2++;
continue;
}
//temp[i]=nums1[p1]<nums[p2]?(nums1[p1],p1++):(nums2[p2],p2++);
if(i>=sum/2){
}
}
if(flag){
return (temp[(len-1)/2]+temp[(len-1)/2+1])/2.0;
}
else return (temp[(len-1)/2]);
}