【LeetCode】646.最长数对链

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time: 2019/3/16
# @Author: xfLi
# The file...

"""
问题分析:
可以用贪心算法来解决,首先以数组中的每个元素的第二值为关键字进行排序,
然后扫描一遍数组,看看能否首尾衔接的住?如果不能就舍弃,依次累计,即可。
"""

def findLongestChain(pairs):
    pairs.sort(key=lambda x: x[1])
    temp = [float('inf'), float('-inf')]  # 临时变量[ 正无穷打,负无穷大 ]
    count = 0
    for p in pairs:  # 贪心的,进行求解
        if temp[1] < p[0]:
            count += 1
            temp = p
    return count

if __name__ == '__main__':
    pairs = [[1,2], [2,3], [3,4]]
    result = findLongestChain(pairs)
    print(result)

猜你喜欢

转载自blog.csdn.net/qq_30159015/article/details/88606385