美文网首页
letcode 4:Median of Two Sorted A

letcode 4:Median of Two Sorted A

作者: 嬴小政今天好好吃饭了吗 | 来源:发表于2019-10-14 21:37 被阅读0次
class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
        //先求两个数组的长度
        int len1 = nums1.size();
        int len2 = nums2.size();
        int result[len1 + len2];
        double r;
        
        if ( len1 + len2 == 0)
            r = 0.0;
        else{
            //循环两个有序数组,进行排序,给第三个数组
            int count1 = 0, count2 = 0, count = 0;
            //用&&不用考虑越界情况
            while ( count1 < len1 && count2 < len2 ){
                //如果nums1中的数较小,且nums1数组没有越界
                if ( nums1[count1] < nums2[count2] ){
                    result[count] = nums1[count1];  //nums1中的数添加到结果数组
                    count1++;   //并且nums1的计数器需要加1
                }
                else {
                    result[count] = nums2[count2];  //nums2中的数添加到结果数组
                    count2++;   //并且nums2的计数器需要加1
                }
                count++;    
            }
            //如果nums1还有剩余
            if ( count1 < len1 ){
                for (int i = count1; i < len1; i++){
                    result[count] = nums1[i];
                    count++;
                }    
            }
            else if ( count2 < len2 ){
                for (int i = count2; i < len2; i++){
                    result[count] = nums2[i];
                    count++;
                }
            }
            //得到结果数组,计算中位数
            //如果有偶数个数
            if ( ( len1 + len2 ) % 2 == 0 )
                r = ( result[(len1 + len2 - 1 ) / 2] + result[(len1 + len2 - 1 ) / 2 + 1] ) / 2.0;
            else 
                r = result[ (len1 + len2 - 1 ) / 2 ] / 1.0;
        }
        
        return r;
    }
};

相关文章

网友评论

      本文标题:letcode 4:Median of Two Sorted A

      本文链接:https://www.haomeiwen.com/subject/pzpdmctx.html