LeetCode 646 最長數對鏈

2021-09-12 17:55:28 字數 659 閱讀 4507

#!/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)

Leetcode 646 最長數對鏈

給出 n 個數對。在每乙個數對中,第乙個數字總是比第二個數字小。現在,我們定義一種跟隨關係,當且僅當 b c 時,數對 c,d 才可以跟在 a,b 後面。我們用這種形式來構造乙個數對鏈。給定乙個對數集合,找出能夠形成的最長數對鏈的長度。你不需要用到所有的數對,你可以以任何順序選擇其中的一些數對來構造...

LeetCode 646 最長數對鏈

給出 n 個數對。在每乙個數對中,第乙個數字總是比第二個數字小。現在,我們定義一種跟隨關係,當且僅當 b c 時,數對 c,d 才可以跟在 a,b 後面。我們用這種形式來構造乙個數對鏈。給定乙個對數集合,找出能夠形成的最長數對鏈的長度。你不需要用到所有的數對,你可以以任何順序選擇其中的一些數對來構造...

leetcode 646 最長數對鏈

給出 n 個數對。在每乙個數對中,第乙個數字總是比第二個數字小。現在,我們定義一種跟隨關係,當且僅當 b c 時,數對 c,d 才可以跟在 a,b 後面。我們用這種形式來構造乙個數對鏈。給定乙個對數集合,找出能夠形成的最長數對鏈的長度。你不需要用到所有的數對,你可以以任何順序選擇其中的一些數對來構造...