1. 程式人生 > >646. Maximum Length of Pair Chain 對鏈最大長度

646. Maximum Length of Pair Chain 對鏈最大長度

fin eve select solution www elf stc amp ati

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:

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

  1. class Solution:
  2. def findLongestChain(self, pairs):
  3. """
  4. :type pairs: List[List[int]]
  5. :rtype: int
  6. """
  7. res
    = 0
  8. sortedPairs = sorted(pairs, key=lambda x: (x[0], x[1]))
  9. pre = -2147483648
  10. for pair in sortedPairs:
  11. if pre < pair[0]:
  12. res += 1
  13. pre = pair[1]
  14. elif pair[1] < pre:
  15. pre = pair[1]
  16. return res
  17. #pairs = [[1, 2], [2, 3], [5, 2], [3, 4], [3, 10]]
  18. pairs = [[-6, 9], [1, 6], [8, 10], [-1, 4], [-6, -2], [-9, 8], [-5, 3], [0, 3]]
  19. s = Solution()
  20. res = s.findLongestChain(pairs)
  21. print(res)




來自為知筆記(Wiz)

646. Maximum Length of Pair Chain 對鏈最大長度