Leetcode 354.俄罗斯套娃信封问题 2021.03.04
三月 04, 2021
354.俄罗斯套娃信封问题
- 难度:困难
给定一些标记了宽度和高度的信封,宽度和高度以整数对形式
(w, h)
出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。
示例
示例1:
输入: envelopes = [[5,4],[6,4],[6,7],[2,3]]
输出: 3
解释: 最多信封的个数为 3, 组合为: [2,3] => [5,4] => [6,7]。
说明
不允许旋转信封。
思路
- 动态规划
- 我们按信封的宽排序,若宽相等,我们按高进行排序。
- 我们从第二个信封开始,开始拿起
- 若拿起的信封能将其之前的信封装入,说明其之前的信封能装的信封它都能装。
- 拿起的信封能装信封数量=其装入的信封内的数量+1(它本身)
- 比较拿起的信封能装信封数量是否比旧值大,取较大值
代码实现
1 | //动态规划 |
查看评论