169.多數(shù)元素(LeeCode)

169. 多數(shù)元素

難度:簡(jiǎn)單

給定一個(gè)大小為 *n *的數(shù)組肿仑,找到其中的多數(shù)元素赞辩。多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù) 大于 ? n/2 ? 的元素。

你可以假設(shè)數(shù)組是非空的虎忌,并且給定的數(shù)組總是存在多數(shù)元素。

示例 1:

輸入:[3,2,3]
輸出:3

示例 2:

輸入:[2,2,1,1,1,2,2]
輸出:2

進(jìn)階:

  • 嘗試設(shè)計(jì)時(shí)間復(fù)雜度為 O(n)憋飞、空間復(fù)雜度為 O(1) 的算法解決此問題同规。

通過次數(shù):284,001
提交次數(shù):431,167

這是我第一次寫解題博客,之所以有感而發(fā)咧擂,也許是因?yàn)檫@道題算法的奇妙之處逞盆。先上代碼~~~

class Solution {
public:
    int majorityElement(vector<int>& nums)
    {
        if (nums.empty())
            return 0;
        if (nums.size()==1)
            return nums[0];
        int  count = 1;
        sort(nums.begin(), nums.end());//進(jìn)行排序,以便之后進(jìn)行計(jì)數(shù)疊加
        int std = nums[0];//起初以第一個(gè)數(shù)為基準(zhǔn)
        for (int i = 1; i < nums.size(); i++)
        {
            if (nums[i] == std)
            {
                count++;
                if (count > nums.size() / 2)
                    return nums[i];
            }
            else
            {
                std = nums[i];//需更換基準(zhǔn)數(shù)
                count = 1;
            }
        }
        return 0;
    }
};

不過結(jié)果感人~~~
image.png

效率還是太低松申,于是我開始想了解大佬們的思路云芦,在此做了一下簡(jiǎn)單的總結(jié)~~~

一、排序

這是我最佩服的了贸桶,沒有之一

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        return nums[nums.size() / 2];
    }
};

題中說了給定的數(shù)組總是存在多數(shù)元素舅逸。,也就是說肯定有一個(gè)元素的個(gè)數(shù)大于數(shù)組長(zhǎng)度的一半皇筛。我們只需要把這個(gè)數(shù)組排序琉历,那么數(shù)組中間的值肯定是存在最多的元素。
看看人家水醋,再看看我旗笔,嘖嘖嘖,日后還需努力練習(xí)拄踪,天道酬勤

二蝇恶、摩爾投票法

public:
    int moreThanHalfNum_Solution(vector<int>& nums) {
        int val, cnt = 0;
        for (auto x : nums)
        {
            if (!cnt) val = x, cnt ++ ;     //目標(biāo)值與其他值剛好配對(duì)抵消時(shí),重置計(jì)數(shù)
            else
            {
                if (x == val) cnt ++ ;
                else cnt -- ;
            }
        }
        return val;                         //最后剩下的一定是多于半數(shù)的目標(biāo)值
    }
};

不同的兩數(shù)相互抵消惶桐,最后剩下的肯定是多于一半的那個(gè)數(shù)艘包。

三、哈希數(shù)組

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        //建立哈希數(shù)組找其中出現(xiàn)次數(shù)大于n/2的數(shù)
        unordered_map<int,int> hash;
        int res=0;
        int len=nums.size();
        for(int i=0;i<len;i++){
            hash[nums[i]]++;
          if(hash[nums[i]]>len/2){
                res=nums[i];
                break;//優(yōu)化一下
            }    
        }
        return res;
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耀盗,一起剝皮案震驚了整個(gè)濱河市想虎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叛拷,老刑警劉巖舌厨,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異忿薇,居然都是意外死亡裙椭,警方通過查閱死者的電腦和手機(jī)躏哩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揉燃,“玉大人扫尺,你說我怎么就攤上這事〈短溃” “怎么了正驻?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)抢腐。 經(jīng)常有香客問我姑曙,道長(zhǎng),這世上最難降的妖魔是什么迈倍? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任伤靠,我火速辦了婚禮,結(jié)果婚禮上啼染,老公的妹妹穿的比我還像新娘宴合。我一直安慰自己,他們只是感情好迹鹅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布形纺。 她就那樣靜靜地躺著,像睡著了一般徒欣。 火紅的嫁衣襯著肌膚如雪逐样。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天打肝,我揣著相機(jī)與錄音脂新,去河邊找鬼。 笑死粗梭,一個(gè)胖子當(dāng)著我的面吹牛争便,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播断医,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼滞乙,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了鉴嗤?” 一聲冷哼從身側(cè)響起斩启,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎醉锅,沒想到半個(gè)月后兔簇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年垄琐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了边酒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狸窘,死狀恐怖墩朦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翻擒,我是刑警寧澤氓涣,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站韭寸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏荆隘。R本人自食惡果不足惜恩伺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望椰拒。 院中可真熱鬧晶渠,春花似錦、人聲如沸燃观。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缆毁。三九已至番川,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脊框,已是汗流浹背颁督。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浇雹,地道東北人沉御。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像昭灵,于是被迫代替她去往敵國(guó)和親吠裆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 169. 多數(shù)元素 題目 給定一個(gè)大小為 n 的數(shù)組烂完,找到其中的多數(shù)元素试疙。多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù)大n/2的元...
    逍遙白亦閱讀 132評(píng)論 0 1
  • 2020/3/15 題目描述 給定一個(gè)大小為 n 的數(shù)組,找到其中的多數(shù)元素抠蚣。多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù)大于 ?...
    icespark閱讀 278評(píng)論 0 0
  • 給定一個(gè)大小為 n 的數(shù)組效斑,找到其中的多數(shù)元素。多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù)大于 ? n/2 ? 的元素。 你可以...
    大蠟筆閱讀 169評(píng)論 0 0
  • 169. 多數(shù)元素 題目 給定一個(gè)大小為 n 的數(shù)組缓屠,找到其中的多數(shù)元素奇昙。多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù)大n/2的元...
    逍遙白亦閱讀 171評(píng)論 0 1
  • 題目:多數(shù)元素 給定一個(gè)大小為 n 的數(shù)組,找到其中的多數(shù)元素敌完。多數(shù)元素是指在數(shù)組中出現(xiàn)次數(shù)大于 ? n/2 ? ...
    軟飯王閱讀 71評(píng)論 0 0