0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

尋找兩個正序數(shù)組的中位數(shù)

汽車電子技術(shù) ? 來源:C語言Plus ? 作者:Maye426 ? 2023-02-27 14:36 ? 次閱讀

教程使用C++版本編寫代碼,如需其他版本,請自行修改,并在力扣網(wǎng)站中測試!

題目描述

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

算法的時間復(fù)雜度應(yīng)該為 O(log (m+n)) 。

示例1:

輸入:nums1 = [1,3], nums2 = [2]
輸出:2.00000
解釋:合并數(shù)組 = [1,2,3] ,中位數(shù) 2

示例2:

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

提示:

  • nums1.length == m
  • nums2.length == n
  • 0 <= m <= 1000
  • 0 <= n <= 1000
  • 1 <= m + n <= 2000
  • -106 <= nums1[i], nums2[i] <= 106

C++題目源碼:

解決方案一:

//中位數(shù)的理解:
//有序序列
//總數(shù)是奇數(shù)
//1 2 3 4 5     5/2 =2
//總數(shù)是偶數(shù)
//1 2 3 4 5 6   6/2=3   (3+4)/2.0=3.5
//合并兩個有序序列
//查找中位數(shù)即可
class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2)
{
        //合并得到一個有序序列
        vector<int> result;
        for(auto& v:nums1)
        {
            result.push_back(v);
        }
        for(auto& v:nums2)
        {
            result.push_back(v);
        }
        sort(result.begin(),result.end());
        //分為奇數(shù)和偶數(shù)的情況輸出中位數(shù)即可
        int length=result.size();
        if((length+1)%2==0)    //奇數(shù)個長度
        {
            return result[length/2];
        }
        else
        {
            int pos=length/2;
            return (result[pos-1]+result[pos])/2.0;
        }
    }
};

解決方案二:

class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2)
    {
        vector<int> result(nums1.size()+nums2.size());
        if(nums1.size()==0)
        {
            copy(nums2.begin(),nums2.end(),result.begin());
        }
        else if(nums2.size()==0)
        {
            copy(nums1.begin(),nums1.end(),result.begin());
        }
        else
        {
            merge(nums1.begin(),nums1.end(),nums2.begin(),nums2.end(),result.begin());
        }
        int pos=result.size()/2;
        return pos!=0&&result.size()%2==0?(result[pos-1]+result[pos])/2.0:result[pos];
    }
};
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2114

    瀏覽量

    73788
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4821

    瀏覽量

    68893
  • 編寫
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    8486
收藏 0人收藏

    評論

    相關(guān)推薦

    C++力扣刷題記之找兩個序數(shù)組中位數(shù),讓我們從C++做題到放棄

    編程語言C++語言
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月14日 11:26:50

    怎樣將兩個數(shù)組比較

    我用圖像得到兩個三維數(shù)組,把這兩個數(shù)組進(jìn)行運算,得出值相同的部分,怎樣用labview實現(xiàn)。由于得到的數(shù)組都很大,可以先簡化一下的
    發(fā)表于 04-18 10:19

    幫忙看看:數(shù)字排序數(shù)組

    如何按照圖中數(shù)字排序數(shù)組簇~~謝謝
    發(fā)表于 06-12 10:45

    兩個一維數(shù)組中相同元素的個數(shù)

    各位大神,請教個問題,兩個一維數(shù)組,每個數(shù)組中約有6萬元素,元素都是唯一的,統(tǒng)計兩個數(shù)組中相同元素個數(shù),使用如下程序,速度較慢,有沒有其他
    發(fā)表于 04-07 17:27

    labview怎么比較兩個數(shù)組的值

    labview怎么一一對應(yīng)比較兩個數(shù)組的值,并且把最大值組成一新的數(shù)組。
    發(fā)表于 10-12 11:06

    兩個一維數(shù)組,找出短的缺失的元素

    一長一短兩個一維數(shù)組,短的比長的缺失幾個元素,怎么找到缺失的元素并用數(shù)組顯示出來,比如【1,2,3,4,5】和【1,2,5】得出【3,4】,求大神解答,就如圖所示
    發(fā)表于 03-10 11:18

    labview比較兩個元素數(shù)值大小,并進(jìn)行統(tǒng)計

    labview 中怎么比較兩個位數(shù)組元素數(shù)值的大小,兩個數(shù)組的數(shù)據(jù)長度是一樣的,然后統(tǒng)計兩個數(shù)組中元素不同的元素數(shù)量除數(shù)組的長度大小,輸出
    發(fā)表于 05-12 18:13

    兩個一維數(shù)組無法生成XY圖

    `兩個位數(shù)組,一直沒辦法生成XY圖始終報錯:由于數(shù)據(jù)類型(數(shù)值、字符串、數(shù)組和簇等)不匹配,將無法連線這些對象。顯示即時幫助窗口可查看所需的數(shù)據(jù)類型。數(shù)據(jù)源的類型是簇 2 元素。數(shù)據(jù)接收端的類型是1D
    發(fā)表于 03-10 22:39

    各位大佬 有兩個組 一X軸數(shù)組Y軸數(shù)組 兩個數(shù)組合成一波形 怎么求這個波形的對稱度?

    各位大佬 有兩個組 一X軸數(shù)組Y軸數(shù)組 兩個數(shù)組
    發(fā)表于 09-26 10:40

    怎么求數(shù)組中相差最小的兩個元素的差?

    怎么求數(shù)組中相差最小的兩個元素的差?
    發(fā)表于 11-22 07:53

    指針數(shù)組數(shù)組指針的區(qū)別

    這里我們區(qū)分兩個重要的概念:指針數(shù)組、數(shù)組指針。
    的頭像 發(fā)表于 06-29 15:30 ?2w次閱讀
    指針<b class='flag-5'>數(shù)組</b>和<b class='flag-5'>數(shù)組</b>指針的區(qū)別

    兩個LED和兩個按鈕的使用

    電子發(fā)燒友網(wǎng)站提供《兩個LED和兩個按鈕的使用.zip》資料免費下載
    發(fā)表于 01-30 16:04 ?1次下載
    <b class='flag-5'>兩個</b>LED和<b class='flag-5'>兩個</b>按鈕的使用

    有關(guān)中位數(shù)計算是什么

    ?中位數(shù)是數(shù)理統(tǒng)計中一重要的指標(biāo),它可以自動忽略數(shù)據(jù)極差帶來的影響, ??能夠很好的評估數(shù)據(jù),在數(shù)理統(tǒng)計中很常用。本文主要介紹在Python中和Mysql 中如何來求中位數(shù),重點讓大家掌握SQL計算
    的頭像 發(fā)表于 02-23 16:22 ?638次閱讀
    有關(guān)<b class='flag-5'>中位數(shù)</b>計算是什么

    C 語言數(shù)組的基本結(jié)構(gòu)

    的元素 求數(shù)組中元素的最短距離 求兩個序數(shù)組的共同元素 求三個數(shù)組的共同元素 找出數(shù)組中唯一的重復(fù)元素 找出出現(xiàn)奇數(shù)次的元素 求
    的頭像 發(fā)表于 06-22 10:56 ?627次閱讀

    介紹一種基于中位數(shù)的離群值檢測方法

    Hampel濾波器是一種基于中位數(shù)的離群值檢測方法,它可以用于消除在數(shù)據(jù)中存在的離群值。
    的頭像 發(fā)表于 06-20 17:13 ?2203次閱讀
    介紹一種基于<b class='flag-5'>中位數(shù)</b>的離群值檢測方法

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品