letcode 4:Median of Two Sorted Arrays

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;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容