Re: [闲聊] 每日LeetCode

楼主: sustainer123 (caster)   2024-01-23 22:31:59
https://leetcode.com/problems/maximum-length-of-pair-chain
646. Maximum Length of Pair Chain
你被给予一个包含n对配对的数组,其中每一对配对pairs[i]由两个元素lefti和righti组
成,并且lefti小于righti。
一对配对p2 = [c, d]可以跟在一对配对p1 = [a, b]之后,如果b小于c。这样就可以形成
一个配对的链。
你需要返回可以形成的最长链的长度
思路:
先将pairs进行排列,之后从最小的pair为起点,逐个比较。
假如最小pair[1] < 当前pair[0]
则链长度+1 当前pair变成新的最小pair 继续进行比较
Python code:
class Solution:
def findLongestChain(self, pairs: List[List[int]]) -> int:
pairs.sort(key=lambda x: x[1])
n = 1
prev = pairs[0]
for cur in pairs[1:]:
if prev[1] < cur[0]:
n += 1
prev = cur
return n
看解答才想出来 姆咪
其实思路差不多
我是用prev[1] >= cur[0]当条件
但怎么改都有问题
后来改成这样就过了
不过prev[1] >= cur[0]跟prev[1] < cur[0]等价才对
应该有解法吧 再想想
作者: SecondRun (雨夜琴声)   2024-01-23 22:44:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com