給定一些標記了寬度和高度的信封,寬度和高度以整數對形式 (w, h) 出現。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。
請計算最多能有多少個信封能組成一組「俄羅斯套娃」信封(即可以把乙個信封放到另乙個信封裡面)。
說明:不允許旋轉信封。
輸入: envelopes = [[5,4],[6,4],[6,7],[2,3]]
輸出: 3
解釋: 最多信封的個數為 3, 組合為: [2,3] => [5,4] => [6,7]。
乙個變形的最長子序列問題。
首先將所有信封按照w公升序排列,對於w相同的信封按照h降序排列。
為什麼這麼做呢?
假設有信封(1,1),(2,2),(2,3),如果按照h公升序的話,那麼通過h得到的lis為「1,2,3」,但實際上(2,3)雖然比(2,2)大,但是卻不能按照題目要求巢狀(因為只有兩個屬性都滿足大於條件才能巢狀)。
如果是按h降序,那麼排列為(1,1),(2,3),(2,2)。在w相同的情況下,最長子列只會包含乙個該w下的元組。所以按照上面說的排序方法,對h屬性求lis,得到的就是最終答案啦
public
class
solution
return b[1]
- a[1]
;}})
;//lis
int[
]arr =
newint
[len]
;int now =
0,left =
0,right =
0,top =0;
for(
int i =
0;i < len;i++
)else
}//把元素更新到目標位置
if(left == top)
else
}return top;
}}
354 俄羅斯套娃信封問題
354.俄羅斯套娃信封問題 給定一些標記了寬度和高度的信封,寬度和高度以整數對形式 w,h 出現。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。請計算最多能有多少個信封能組成一組 俄羅斯套娃 信封 即可以把乙個信封放到另乙個信封裡面 說明 不允許旋...
354 俄羅斯套娃信封問題
給你乙個二維整數陣列 envelopes 其中 envelopes i wi,hi 表示第 i 個信封的寬度和高度。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。請計算 最多能有多少個 信封能組成一組 俄羅斯套娃 信封 即可以把乙個信封放到另乙個信...
俄羅斯套娃信封問題(LeetCode 354)
給定一些標記了寬度和高度的信封,寬度和高度以整數對形式 w,h 出現。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。請計算最多能有多少個信封能組成一組 俄羅斯套娃 信封 即可以把乙個信封放到另乙個信封裡面 說明 不允許旋轉信封。示例 輸入 enve...