354. Russian Doll Envelopes 俄羅斯套娃信封問題

題目鏈接

tag:

  • Hard;
  • DP;

question:
??You have a number of envelopes with widths and heights given as a pair of integers (w, h). One envelope can fit into another if and only if both the width and height of one envelope is greater than the width and height of the other envelope.

What is the maximum number of envelopes can you Russian doll? (put one inside other)

Note: Rotation is not allowed.

Example:

Input: [[5,4],[6,4],[6,7],[2,3]]
Output: 3
Explanation: The maximum number of envelopes you can Russian doll is 3 ([2,3] => [5,4] => [6,7]).

思路:
??本題給了我們一堆大小不一的信封浓镜,讓我們像套俄羅斯娃娃那樣把這些信封都給套起來,容易想到用 DP 劲厌,這是一種 brute force 的解法膛薛,首先要給所有的信封按從小到大排序,首先根據(jù)寬度從小到大排补鼻,如果寬度相同哄啄,那么高度小的再前面,這里用 STL 里面的 sort 风范,然后開始遍歷咨跌,對于每一個信封,我們都遍歷其前面所有的信封硼婿,如果當前信封的長和寬都比前面那個信封的大锌半,那么我們更新dp數(shù)組,代碼如下:

class Solution {
public:
    int maxEnvelopes(vector<vector<int>>& envelopes) {
        if (envelopes.empty() || envelopes[0].empty()) return 0;
        sort(envelopes.begin(), envelopes.end(), comparator);
        int res = 0, n = envelopes.size();
        vector<int> dp(n, 1);
        for (int i=0; i<n; ++i) {
            for (int j=0; j<i; ++j) {
                if (envelopes[i][0] > envelopes[j][0] && envelopes[i][1] > envelopes[j][1])
                    dp[i] = max(dp[i], dp[j] + 1);
            }
            res = max(res, dp[i]);
        }
        return res;
    }
    
    static bool comparator(vector<int> a, vector<int> b) {
        if (a[0] == b[0])
            return a[1] < b[1];
        else
            return a[0] < b[0];
    }
};
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寇漫,一起剝皮案震驚了整個濱河市刊殉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌州胳,老刑警劉巖记焊,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異栓撞,居然都是意外死亡遍膜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門腐缤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捌归,“玉大人,你說我怎么就攤上這事岭粤∠鳎” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵剃浇,是天一觀的道長巾兆。 經(jīng)常有香客問我,道長虎囚,這世上最難降的妖魔是什么角塑? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮淘讥,結果婚禮上圃伶,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好窒朋,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布搀罢。 她就那樣靜靜地躺著,像睡著了一般侥猩。 火紅的嫁衣襯著肌膚如雪榔至。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天欺劳,我揣著相機與錄音唧取,去河邊找鬼。 笑死划提,一個胖子當著我的面吹牛枫弟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鹏往,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼媒区,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了掸犬?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绪爸,失蹤者是張志新(化名)和其女友劉穎湾碎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奠货,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡介褥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了递惋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柔滔。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖萍虽,靈堂內(nèi)的尸體忽然破棺而出睛廊,到底是詐尸還是另有隱情,我是刑警寧澤杉编,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布超全,位于F島的核電站,受9級特大地震影響邓馒,放射性物質發(fā)生泄漏嘶朱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一光酣、第九天 我趴在偏房一處隱蔽的房頂上張望疏遏。 院中可真熱鬧,春花似錦、人聲如沸财异。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宝当。三九已至视事,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庆揩,已是汗流浹背俐东。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留订晌,地道東北人虏辫。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像锈拨,于是被迫代替她去往敵國和親砌庄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

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

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,336評論 0 10
  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,511評論 0 23
  • vector迭代器可以加減整數(shù)next:下一個迭代器prev:前一個迭代器INT_MAX = 2^31-1奕枢,INT...
    DaiMorph閱讀 182評論 0 0
  • 將美好埋在昨天娄昆。薔薇依舊鮮艷,不知疲倦缝彬。 翻閱簡書文海萌焰,譏笑于自己的混跡,感傷混雜著謙遜谷浅,躡手躡腳走過一座座山丘扒俯,...
    ISD丨墨白閱讀 338評論 0 3
  • 520親子成長跡|05 這一周柳小寶開始愿意開始念繪本給媽媽聽,愿意嘗試畫一些小作品一疯,愿意自己用點讀筆聽鵝媽媽撼玄,愿...
    請叫我王青羽閱讀 277評論 0 2