给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。

请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。

说明:
不允许旋转信封。

示例:

输入: envelopes = [[5,4],[6,4],[6,7],[2,3]]
输出: 3
解释: 最多信封的个数为 3, 组合为: [2,3] => [5,4] => [6,7]。

class Solution {
public:
    int maxEnvelopes(vector<pair<int, int>>& envelopes) {
        int res = 0, n = envelopes.size();
        vector<int> dp(n, 1);
        sort(envelopes.begin(), envelopes.end());
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < i; ++j) {
                if (envelopes[i].first > envelopes[j].first && envelopes[i].second > envelopes[j].second) {
                    dp[i] = max(dp[i], dp[j] + 1);
                }
            }
            res = max(res, dp[i]);
        }
        return res;
    }
};

354.俄罗斯套娃信封问题相关推荐

  1. 354. 俄罗斯套娃信封问题

    354. 俄罗斯套娃信封问题 题目 一.思路 二.代码 总结 题目 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. ...

  2. LeetCode - 354 俄罗斯套娃信封问题

    题目来源 354. 俄罗斯套娃信封问题 - 力扣(LeetCode) 题目描述 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的 ...

  3. 354. 俄罗斯套娃信封问题(动态规划)

    354. 俄罗斯套娃信封问题 问题描述 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都 ...

  4. leetcode 354. 俄罗斯套娃信封问题(dp+二分)

    给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现.当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多能有多少个信封 ...

  5. LeetCode 354. 俄罗斯套娃信封问题(最长上升子序 DP/二分查找)

    1. 题目 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多 ...

  6. leetcode 354. 俄罗斯套娃信封问题(二维排序有关)

    题目描述 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现.当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多能有 ...

  7. 354. 俄罗斯套娃信封问题(良心注释)

    问题描述 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就 ...

  8. LeetCode 354 俄罗斯套娃信封问题

    给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另 ...

  9. 【动态规划-困难】354. 俄罗斯套娃信封问题

    [题目] 给你一个二维整数数组 envelopes ,其中 envelopes[i] = [wi, hi] ,表示第 i 个信封的宽度和高度. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就 ...

  10. 力扣354——俄罗斯套娃信封问题(排序+动态规划)

    思路 首先排序,后面一定不会存在比当前信封更大的信封. 对于严格大于,是具有传递性的,如果信封a比信封b大,则a比(所有b大于的信封)大,因此可以利用传递性进行动态规划. dp代表该信封能装下的最大数 ...

最新文章

  1. Linux进程突然挂死,当主进程突然死亡时,我该如何杀死linux spawnProcess?
  2. 机器学习-线性回归与梯度下降
  3. 微信新增“炸屎”功能,被好友玩坏了。。
  4. C# 大型对象堆学习总结
  5. rasp 系统_RASP攻防 —— RASP安全应用与局限性浅析
  6. HTML5调用redis,redis实现从数据库获取数据添加到html页面上
  7. border-image用法
  8. leetcode 86. 分隔链表(链表)
  9. win7系统任务管理器被禁用怎么解决
  10. mysql longblob_Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)
  11. 05.Qt设置背景图片
  12. php mvc 实现,php mvc的简单实现
  13. ios弧形进度条_iOS实现一个颜色渐变的弧形进度条
  14. struts2学习——拦截器
  15. virtualbox 中,虚拟机网络使用NAT方式时,其它机器对虚拟机的访问
  16. Gmail大改版,36岁的电子邮箱为何未像BBS一样消亡?
  17. android 顶部弹窗,android显示通知,并在任何应用程序顶部弹出
  18. 解决:联想电脑开机壁纸图片在哪可以找到?
  19. oracle入门之登录-创建用户
  20. 容斥原理之求区间中与某数互质的个数

热门文章

  1. 页面常见的布局方式(图解)
  2. oracle 创建表同时添加注释
  3. github的使用 sourceTree
  4. 使用基于轮询的SQL数据缓存依赖
  5. mysql truncate 日期_(LINQ to Entities)使用日期判断条件Truncate日期函数
  6. junit可执行但控制层无法执行_解决junit5无法使用gradle test运行测试
  7. 在php里怎么安装composer,怎么安装composer
  8. 计算机与未来的教育阅读答案,作文:计算机与未来的教育
  9. 不读取nan行_一个参数一个Excel表,让你玩转Pandas中read_excel()表格读取!
  10. 一维欧拉方程matlab代码,一维欧拉方程组的warming-beam差分求解