LeetCode 646 最長數對鏈

2021-10-09 21:42:00 字數 615 閱讀 8005

給出 n 個數對。 在每乙個數對中,第乙個數字總是比第二個數字小。

現在,我們定義一種跟隨關係,當且僅當 b < c 時,數對(c, d) 才可以跟在 (a, b) 後面。我們用這種形式來構造乙個數對鏈。

給定乙個對數集合,找出能夠形成的最長數對鏈的長度。你不需要用到所有的數對,你可以以任何順序選擇其中的一些數對來構造。

貪心演算法

class solution:

def findlongestchain(self, pairs: list[list[int]]) -> int:

pairs.sort(key=lambda x: (x[1], x[0]))

res =

i = 1

right = pairs[0][1]

while i < len(pairs):

while i < len(pairs) and pairs[i][0] <= right:

i += 1

if i == len(pairs):

break

right = pairs[i][1]

# print(res)

return len(res)

LeetCode 646 最長數對鏈

usr bin python3 coding utf 8 time 2019 3 16 author xfli the file.問題分析 可以用貪心演算法來解決,首先以陣列中的每個元素的第二值為關鍵字進行排序,然後掃瞄一遍陣列,看看能否首尾銜接的住?如果不能就捨棄,依次累計,即可。def find...

Leetcode 646 最長數對鏈

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

leetcode 646 最長數對鏈

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