LeetCode 354 俄羅斯套娃信封問題

2022-06-15 08:06:16 字數 859 閱讀 9937

給定一些標記了寬度和高度的信封,寬度和高度以整數對形式(w, h)出現。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。

請計算最多能有多少個信封能組成一組「俄羅斯套娃」信封(即可以把乙個信封放到另乙個信封裡面)。

說明:

不允許旋轉信封。

示例:

輸入: envelopes = [[5,4],[6,4],[6,7],[2,3]]

輸出: 3

解釋: 最多信封的個數為 3, 組合為: [2,3] => [5,4] => [6,7]。

看到這道題的時候,第一思路是採用拓撲排序,然後採用動態規劃演算法來求解圖中的最長路徑。

但是想到構建乙個有向圖並拓撲排序確實比較麻煩,採用稍微簡化一些的辦法求解。

首先我們可以把所有的信封按寬度從小到大排序,那麼至少可以保證,對所有的i < jenvelopes[j]不可能被放入envelopes[j]

下面的問題轉化為,在已經排序好的envelopes陣列中,對所有的j,找到乙個最長遞增子串行。

class solution );

vectordp(envelopes.size(), 1);

int maxlen = 0;

for(int i = 0; i < envelopes.size(); i++)

return maxlen;

}};

俄羅斯套娃信封問題(LeetCode 354)

給定一些標記了寬度和高度的信封,寬度和高度以整數對形式 w,h 出現。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。請計算最多能有多少個信封能組成一組 俄羅斯套娃 信封 即可以把乙個信封放到另乙個信封裡面 說明 不允許旋轉信封。示例 輸入 enve...

leetcode 354 俄羅斯套娃信封問題

目錄 一 題目內容 二 解題思路 三 給定一些標記了寬度和高度的信封,寬度和高度以整數對形式 w,h 出現。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。請計算最多能有多少個信封能組成一組 俄羅斯套娃 信封 即可以把乙個信封放到另乙個信封裡面 說明...

Leetcode 354 俄羅斯套娃信封問題

給定一些標記了寬度和高度的信封,寬度和高度以整數對形式 w,h 出現。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。請計算最多能有多少個信封能組成一組 俄羅斯套娃 信封 即可以把乙個信封放到另乙個信封裡面 說明 不允許旋轉信封。示例 輸入 enve...