LeetCode(4)

double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){
    int i = 0,p = 0,q = 0,n1 = nums1Size+nums2Size,n = (nums1Size+nums2Size)/2;
    double t1,t2;
    while(i<n-1&&p<nums1Size&&q<nums2Size){
        if(nums1[p]<nums2[q]){
            p++;
        }
        else{
            q++;
        }
        i++;
    }
    while(i<n-1&&p<nums1Size){
        p++;
        i++;
    }
    while(i<n-1&&q<nums2Size){
        q++;
        i++;
    }
    if(n>0){
        if(p<nums1Size&&q<nums2Size){
            if(nums1[p]<nums2[q]){
                t1 = nums1[p];
                p++;
            }
            else{
                t1 = nums2[q];
                q++;
            }
        }
        else if(p<nums1Size){
            t1 = nums1[p];
            p++;
        }
        else if(q<nums2Size){
            t1 = nums2[q];
            q++;
        }
    }
    if(p<nums1Size&&q<nums2Size){
        if(nums1[p]<nums2[q]){
            t2 = nums1[p];
            p++;
        }
        else{
            t2 = nums2[q];
            q++;
        }
    }
    else if(p<nums1Size){
        t2 = nums1[p];
        p++;
    }
    else if(q<nums2Size){
        t2 = nums2[q];
        q++;
    }
    printf("%lf %lf\n",t1,t2);
    if(n1%2==0)
        return (t1+t2)/2;
    else
        return t2;
}

 

posted @ 2021-12-29 17:56  智人心  阅读(25)  评论(0)    收藏  举报