天天看點

median-of-two-sorted-arrays

此題還是沒有改掉自己代碼胡亂的毛病啊,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]);
}