1. 题目

给出 n 个数对。 在每一个数对中,第一个数字总是比第二个数字小。

现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面。我们用这种形式来构造一个数对链。

给定一个对数集合,找出能够形成的最长数对链的长度。你不需要用到所有的数对,你可以以任何顺序选择其中的一些数对来构造。

示例 :输入: [[1,2], [2,3], [3,4]]
输出: 2
解释: 最长的数对链是 [1,2] -> [3,4]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-length-of-pair-chain
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 贪心解题

  • 按照结束位置排序
  • 与前面不相交,计数+1,更新结束位置为当前的结束位置
bool cmp(vector<int> &a, vector<int> &b)
{return a[1] < b[1];
}
class Solution {public:int findLongestChain(vector<vector<int>>& pairs) {sort(pairs.begin(), pairs.end(),cmp);int count = 1, prevEnd = pairs[0][1];for(int i = 1; i < pairs.size(); ++i){if(pairs[i][0] > prevEnd){++count;prevEnd = pairs[i][1];}}return count;}
};

LeetCode 646. 最长数对链(区间 贪心)相关推荐

  1. leetcode - 646. 最长数对链

    646. 最长数对链 -------------------------------------------- 给出 n 个数对. 在每一个数对中,第一个数字总是比第二个数字小. 现在,我们定义一种跟 ...

  2. Java实现 LeetCode 646 最长数对链(暴力)

    646. 最长数对链 给出 n 个数对. 在每一个数对中,第一个数字总是比第二个数字小. 现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面. ...

  3. LeetCode 646. 最长数对链

    思路:贪心算法可行. public static int findLongestChain(int[][] pairs) {if(pairs.length < 2)return pairs.le ...

  4. 646. 最长数对链

    给出 n 个数对. 在每一个数对中,第一个数字总是比第二个数字小. 现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面.我们用这种形式来构造一 ...

  5. leetcode 646. Maximum Length of Pair Chain | 646. 最长数对链(暴力递归->傻缓存->dp)

    题目 https://leetcode.com/problems/maximum-length-of-pair-chain/description/ 题解 暴力递归->傻缓存->dp 写完 ...

  6. 【动态规划】最长数对链

    问题描述 给出 n 个数对. 在每一个数对中,第一个数字总是比第二个数字小. 现在,我们定义一种跟随关系,当且仅当 b < c 时,数对 (c, d) 才可以跟在 (a, b) 后面.我们用这种 ...

  7. leetcode算法题--最长数对链

    原题链接:https://leetcode-cn.com/problems/maximum-length-of-pair-chain/ 1.动态规划 dp[i]表示第i个位置最长的数对链的长度 状态转 ...

  8. 【leetcode】最长回文子串(区间dp)

    给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...

  9. LeetCode实战:两数相加

    题目英文 You are given two non-empty linked lists representing two non-negative integers. The digits are ...

最新文章

  1. Python3中参数*args和**kwargs介绍
  2. CentOS上安装Python3.7.4
  3. AWS s3 V4签名算法
  4. javascript图片轮播(完全自己手写代码)
  5. Java中高维数组或高维矩阵构建及运算
  6. ireport在springboot中中文不显示解决
  7. [swift] LeetCode 169. Majority Element
  8. OpenCV精进之路(零):访问图像中像素的三种方法
  9. 佳能MP258mp259清零软件
  10. 谷歌地球看不了街景_谷歌街景车意外拍到的沙雕动物们……也是意想不到的快乐源泉啊!...
  11. 微信记账小程序-共享账本(附源码及说明),你值得拥有
  12. Toshiba转换芯片-TC358778XBG:RGB转MIPI DSI芯片资料
  13. iterator的用法及概念
  14. 故障树手册(Fault Tree handbook)(4)
  15. Linux常用命令——mailq命令
  16. 智能小区 安防技术详解及安防隐患杂谈
  17. 在Mac中开发STM32单片机
  18. 用U盘或移动硬盘装 深山红叶袖珍系统Win PE启动盘
  19. ASP.NET技术原理简介
  20. springboot 控制台输出错误信息_Spring boot使用logback实现日志配置

热门文章

  1. C和C++混合编程(__cplusplus使用)
  2. java 对象加密_java.security包实现对象加密
  3. uboot启动过程总结的思维导图
  4. uboot将命令结构体单独存放在某个代码段的方法
  5. GNU C 、ANSI C、标准C、标准c++区别和联系
  6. [Swift实际操作]八、实用进阶-(7)使用通知的方法进行对象间的消息传递
  7. Attempt to write to a read-only database Sqlite
  8. 测试ASP.NET 2.0中Gridview控件高级技巧
  9. socket-select函数
  10. 从没想过会有一个这样的机会|大疆招聘