53. 最小的k個(gè)數(shù)

題目地址:https://www.acwing.com/problem/content/description/49/

AC代碼 make_heap

class Solution {
public:
    vector<int> getLeastNumbers_Solution(vector<int> input, int k) {
        auto cmp = [](int a,int b){ return a>b; }; //類或者匿名函數(shù)
        make_heap(input.begin(),input.end(),cmp);
        vector<int> res;
        while(k--){
            res.push_back(input.front());
            pop_heap(input.begin(),input.end(),cmp);
            input.pop_back();
        }
        return res;
    }
};

AC代碼 priority_queue

class Solution {
public:
    vector<int> getLeastNumbers_Solution(vector<int> input, int k) {
        priority_queue<int,vector<int>,greater<int>> q;
        vector<int> res;
        for(auto e:input) q.push(e);
        while(k--){
            res.push_back(q.top());
            q.pop();
        }
        return res;
    }
};

AC代碼 手動(dòng)建堆

class Solution {
public:
    void adjust_heap(vector<int>& v,int len,int i){
        int lc=2*i+1,rc=2*i+2,tar=i;
        while(lc<len || rc<len){
            if(lc<len && v[lc]<v[tar]) tar=lc;
            if(rc<len && v[rc]<v[tar]) tar=rc;
            if(tar!=i){
                swap(v[i],v[tar]);
                i=tar;
                lc=2*i+1;
                rc=2*i+2;
            }
            else break;
        }
    }

    void make_heap(vector<int>& v){
        for(int i=v.size()/2-1;i>=0;i--)
            adjust_heap(v,v.size(),i);
    }

    vector<int> getLeastNumbers_Solution(vector<int> input, int k) {
        make_heap(input);
        vector<int> res;
        while(k--){
            res.push_back(input[0]);
            swap(input[0],input.back());
            input.pop_back();
            make_heap(input);
        }
        return res;
    }
};

總結(jié)

復(fù)習(xí)堆

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末庆揪,一起剝皮案震驚了整個(gè)濱河市庵楷,隨后出現(xiàn)的幾起案子掸哑,更是在濱河造成了極大的恐慌拘泞,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逞怨,死亡現(xiàn)場(chǎng)離奇詭異捌省,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)互订,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門吱肌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仰禽,你說我怎么就攤上這事氮墨。” “怎么了坟瓢?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵勇边,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我折联,道長(zhǎng)粒褒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任诚镰,我火速辦了婚禮奕坟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘清笨。我一直安慰自己月杉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布抠艾。 她就那樣靜靜地躺著苛萎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腌歉,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天蛙酪,我揣著相機(jī)與錄音,去河邊找鬼翘盖。 笑死桂塞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的馍驯。 我是一名探鬼主播阁危,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼汰瘫!你這毒婦竟也來了狂打?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤吟吝,失蹤者是張志新(化名)和其女友劉穎菱父,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體剑逃,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡浙宜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛹磺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粟瞬。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖萤捆,靈堂內(nèi)的尸體忽然破棺而出裙品,到底是詐尸還是另有隱情,我是刑警寧澤俗或,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布市怎,位于F島的核電站,受9級(jí)特大地震影響辛慰,放射性物質(zhì)發(fā)生泄漏区匠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一帅腌、第九天 我趴在偏房一處隱蔽的房頂上張望驰弄。 院中可真熱鬧,春花似錦速客、人聲如沸戚篙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)岔擂。三九已至位喂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乱灵,已是汗流浹背忆某。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阔蛉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓癞埠,卻偏偏與公主長(zhǎng)得像状原,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子苗踪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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

  • 最全的iOS面試題及答案 iOS面試小貼士 ———————————————回答好下面的足夠了-----------...
    zweic閱讀 2,693評(píng)論 0 73
  • __block和__weak修飾符的區(qū)別其實(shí)是挺明顯的:1.__block不管是ARC還是MRC模式下都可以使用颠区,...
    LZM輪回閱讀 3,291評(píng)論 0 6
  • 午時(shí)三刻毕莱,武場(chǎng)央及,群雄并起颅夺,所過劫掠朋截,操之過急;林酣微坐吧黄,尚恬而憩部服,天色滄惘,小雨淅瀝拗慨;高臺(tái)正襟廓八,指尖談笑。所過...
    非涯閱讀 567評(píng)論 0 0
  • 我是日記星球第176號(hào)星寶寶赵抢,我正在參加日記星球第十三期蛻變之旅剧蹂,這是我的第77篇日記。如果你想在2018年獲得更...
    林筱芬閱讀 129評(píng)論 0 1
  • 雪茄的分類 1烦却、雪茄按形狀分類常見的有: t型宠叼、桶型、紳士型(大眾化形狀短绸,直徑13毫米车吹,長(zhǎng)度117毫米);還有一些...
    雪茄小生閱讀 1,208評(píng)論 0 1