LeetCode刷題 題4. 尋找兩個(gè)正序數(shù)組的中位數(shù)

給定兩個(gè)大小分別為 m 和 n 的正序(從小到大)數(shù)組 nums1 和 nums2。請你找出并返回這兩個(gè)正序數(shù)組的 中位數(shù) 。

示例 :
輸入:nums1 = [1,2], nums2 = [3,4]
輸出:2.50000
解釋:合并數(shù)組 = [1,2,3,4] ,中位數(shù) (2 + 3) / 2 = 2.5

思路:合并之后排序,再找中位數(shù); 但是要注意int與double類型轉(zhuǎn)換的問題。

double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
        vector<int>nums;   //存儲nums1和nums2的合并數(shù)組
        for(int i=0; i<nums1.size(); i++)
            nums.push_back(nums1[i]);
        for(int j=0; j<nums2.size(); j++)
            nums.push_back(nums2[j]);
        sort(nums.begin(), nums.end());  //對合并數(shù)組進(jìn)行排序
        int len = nums.size();     //獲取合并數(shù)組的長度
        if(0 == len)    //長度為0,說明為空,輸出0.00000
            return 0.00000;
        if(len%2 == 0)    //長度為偶數(shù),返回值是中間兩數(shù)的平均數(shù),
            return (double)(nums[len/2-1] + nums[len/2])/2; //此處前面要加double,若不加double,比如2和3的平均數(shù)計(jì)算出來就是2而不是2.5   
        else   //長度為奇數(shù),返回值就是中間那個(gè)。返回值自動是double類型。 
            return nums[len/2];
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容