题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一系列活动的开始时间、结束时间和价值,其中最多能参加两个时间不重合的活动,求可获得价值最大值。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def maxTwoEvents(self, events: List[List[int]]) -> int:

events.sort(key=lambda x : x[1])
st = [(0, 0)]
ans = 0
for event in events:
i = bisect_left(st, (event[0], ))-1
ans = max(ans, event[2] + st[i][1])
if event[2] > st[-1][1]:
st.append((event[1], event[2]))
return ans