-
题目链接 https://leetcode-cn.com/problems/maximum-length-of-pair-chain/submissions/
-
题目描述
-
给出
n
个数对。 在每一个数对中,第一个数字总是比第二个数字小。现在,我们定义一种跟随关系,当且仅当
b < c
时,数对(c, d)
才可以跟在(a, b)
后面。我们用这种形式来构造一个数对链。给定一个对数集合,找出能够形成的最长数对链的长度。你不需要用到所有的数对,你可以以任何顺序选择其中的一些数对来构造。
-
输入: [[1,2], [2,3], [3,4]] 输出: 2 解释: 最长的数对链是 [1,2] -> [3,4]
-
-
解题思路
- 贪心法: 此题类似于最大活动数,根据数据对的第二个元素进行从小到大进行排序,从左向右依次取满足要求的数字对,并将数据对的第二个元素设定为限定条件。
-
代码
- python
class Solution: def findLongestChain(self, pairs: List[List[int]]) -> int: pairs.sort(key=lambda a: a[1]) last,res =-1 * float('inf'), 0 for i, j in pairs: if i > last: res, last = res + 1, j return res
- python
leetcode 646
最新推荐文章于 2024-02-21 15:11:36 发布