median-of-two-sorted-arrays

来源:互联网 发布:unity 引擎源码 编辑:程序博客网 时间:2024/06/04 18:31
此题还是没有改掉自己代码胡乱的毛病啊,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]);}

0 0