PU Maximum Length of Pair Chain

Jan 01, 1970

You are given n pairs of numbers. In every pair, the first number is always smaller than the second number.

Now, we define a pair (c, d) can follow another pair (a, b) if and only if b < c. Chain of pairs can be formed in this fashion.

Given a set of pairs, find the length longest chain which can be formed. You needn't use up all the given pairs. You can select pairs in any order.

Example 1:

Input: [[1,2], [2,3], [3,4]]
Output: 2
Explanation: The longest chain is [1,2] -> [3,4]

Note: The number of given pairs will be in the range [1, 1000].

Python Solution:

class Solution(object):
    def findLongestChain(self, pairs):
        """
        :type pairs: List[List[int]]
        :rtype: int
        """
        pairs.sort(key = lambda x: x[1])
        res = 1
        end = pairs[0][1]
        for pair in pairs[1:]:
            if pair[0] > end:
                res += 1
                end = pair[1]
        return res

Summary:

  • greedy.

LeetCode: 646. Maximum Length of Pair Chain