lc.354.俄罗斯套娃信封问题
文章目录
354. 俄罗斯套娃信封问题
Difficulty: 困难
给你一个二维整数数组 envelopes
,其中 envelopes[i] = [w<sub style="display: inline;">i</sub>, h<sub style="display: inline;">i</sub>]
,表示第 i
个信封的宽度和高度。
当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。
请计算 最多能有多少个 信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。
注意:不允许旋转信封。
示例 1:
|
|
示例 2:
|
|
提示:
1 <= envelopes.length <= 5000
envelopes[i].length == 2
1 <= w<sub style="display: inline;">i</sub>, h<sub style="display: inline;">i</sub> <= 10<sup>4</sup>
Solution
解题思路分析
原理:
- 先对数组排序, 转化为一个 从小到大顺序的 数组
- 这个问题就可以理解为 求 有向图的最长路径
- 定义 $result_{路径大小} = dist(e1,e2,e3…e_n)$
- 这样就可以理解为最长上升子序列模型 并且求解
Language: ****
|
|
文章作者 LYR
上次更新 2021-08-14