LeetCode 646. 最长数对链(区间 贪心)
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. 最长数对链(区间 贪心)相关推荐
- leetcode - 646. 最长数对链
646. 最长数对链 -------------------------------------------- 给出 n 个数对. 在每一个数对中,第一个数字总是比第二个数字小. 现在,我们定义一种跟 ...
- Java实现 LeetCode 646 最长数对链(暴力)
646. 最长数对链 给出 n 个数对. 在每一个数对中,第一个数字总是比第二个数字小. 现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面. ...
- LeetCode 646. 最长数对链
思路:贪心算法可行. public static int findLongestChain(int[][] pairs) {if(pairs.length < 2)return pairs.le ...
- 646. 最长数对链
给出 n 个数对. 在每一个数对中,第一个数字总是比第二个数字小. 现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面.我们用这种形式来构造一 ...
- leetcode 646. Maximum Length of Pair Chain | 646. 最长数对链(暴力递归->傻缓存->dp)
题目 https://leetcode.com/problems/maximum-length-of-pair-chain/description/ 题解 暴力递归->傻缓存->dp 写完 ...
- 【动态规划】最长数对链
问题描述 给出 n 个数对. 在每一个数对中,第一个数字总是比第二个数字小. 现在,我们定义一种跟随关系,当且仅当 b < c 时,数对 (c, d) 才可以跟在 (a, b) 后面.我们用这种 ...
- leetcode算法题--最长数对链
原题链接:https://leetcode-cn.com/problems/maximum-length-of-pair-chain/ 1.动态规划 dp[i]表示第i个位置最长的数对链的长度 状态转 ...
- 【leetcode】最长回文子串(区间dp)
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...
- LeetCode实战:两数相加
题目英文 You are given two non-empty linked lists representing two non-negative integers. The digits are ...
最新文章
- Python3中参数*args和**kwargs介绍
- CentOS上安装Python3.7.4
- AWS s3 V4签名算法
- javascript图片轮播(完全自己手写代码)
- Java中高维数组或高维矩阵构建及运算
- ireport在springboot中中文不显示解决
- [swift] LeetCode 169. Majority Element
- OpenCV精进之路(零):访问图像中像素的三种方法
- 佳能MP258mp259清零软件
- 谷歌地球看不了街景_谷歌街景车意外拍到的沙雕动物们……也是意想不到的快乐源泉啊!...
- 微信记账小程序-共享账本(附源码及说明),你值得拥有
- Toshiba转换芯片-TC358778XBG:RGB转MIPI DSI芯片资料
- iterator的用法及概念
- 故障树手册(Fault Tree handbook)(4)
- Linux常用命令——mailq命令
- 智能小区 安防技术详解及安防隐患杂谈
- 在Mac中开发STM32单片机
- 用U盘或移动硬盘装 深山红叶袖珍系统Win PE启动盘
- ASP.NET技术原理简介
- springboot 控制台输出错误信息_Spring boot使用logback实现日志配置
热门文章
- C和C++混合编程(__cplusplus使用)
- java 对象加密_java.security包实现对象加密
- uboot启动过程总结的思维导图
- uboot将命令结构体单独存放在某个代码段的方法
- GNU C 、ANSI C、标准C、标准c++区别和联系
- [Swift实际操作]八、实用进阶-(7)使用通知的方法进行对象间的消息传递
- Attempt to write to a read-only database Sqlite
- 测试ASP.NET 2.0中Gridview控件高级技巧
- socket-select函数
- 从没想过会有一个这样的机会|大疆招聘