Leetcode 俄羅斯套娃信封問題

2022-06-29 21:51:11 字數 605 閱讀 7585

對於我這種沒有dp思維的想這種問題實在太難,看了下題解再去補了下lcs和lis,發現還是不太會。最主要是二維的東西,乙個被另乙個所牽制。

解法:很直觀的想法就是利用pair的性質把這個陣列排個序,此時第乙個已經是遞增的了,然後按照第二個遞增來做。但是這樣並沒有辦法解決第乙個牽制的問題,就比如1 1,1 2, 1 3,如果只看到第二維1 2 3而沒有看到第一維1 1 1的相同性,就沒辦法得到正確的答案。此時怎麼辦呢?

上面的問題在於在first相同的情況下,卻仍然存在遞增的情況,使得答案不準確。如果我們把第二維按照降序排列,也就是變成3 3, 3 2, 3 1,這樣看著3 2 1,就可以很好判斷出最長遞增序列長度為1了。但是如果有個1 1,那3 1就會頂掉1 1,此時就會是1 3 -> 1 2 -> 1 2,第二次的1 2的1是由3 1的1得到來的。由於有1 1的存在,所以在最前面建立了乙個位置,後面即使頂掉也無所謂,你可以認為就仍在是1 1,也可以認為是3 1,反正後面的firts肯定比3要大。

bool cmp(pair a, pairb) 

class

solution

else

}return

dp.size();

}};

俄羅斯套娃信封

給一定數量的信封,帶有整數對 w,h 分別代表信封寬度和高度。乙個信封的寬高均大於另乙個信封時可以放下另乙個信封。求最大的信封巢狀層數。樣例 1 輸入 5,4 6,4 6,7 2,3 輸出 3 解釋 最大的信封巢狀層數是 3 2,3 5,4 6,7 樣例 2 輸入 4,5 4,6 6,7 2,3 1...

俄羅斯套娃信封問題

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

俄羅斯套娃信封問題

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