Maximum Length of Pair Chain
Input:
[[1,2], [2,3], [3,4]]
Output:
2
Explanation:
The longest chain is [1,2] -
>
[3,4]Last updated
Input:
[[1,2], [2,3], [3,4]]
Output:
2
Explanation:
The longest chain is [1,2] -
>
[3,4]Last updated
class Solution:
def findLongestChain(self, pairs: List[List[int]]) -> int:
n = len(pairs)
f = [1]*(n+1)
res = 0
# for i in range(1,n+1):
# f[i] = 1
pairs.sort()
for i in range(1,n+1):
for j in range(i-1,-1,-1): #倒序是为了及时break 防止TLE
ca,cb = pairs[i-1]
pa,pb = pairs[j-1]
if ca > pb:
f[i] = max(f[i],f[j] + 1)
break
res = max(res,f[i])
return resclass Solution:
def findLongestChain(self, pairs: List[List[int]]) -> int:
pairs.sort(key = lambda x: (x[1],x[0]))#记得要加括号!!!!
pre = float('-inf')
res = 0
for a, b in pairs:
if pre < a:
pre,res = b,res+1
return res