题解 | 活动安排 Python3
活动安排
https://www.nowcoder.com/practice/16d971e9e42e4f3b9b1e2b8794796a43
import sys
# 23:49
# 想象最优的情况的时候,每一个选择的活动,它的结束时间肯定是在左边的活动结束之后,右边的活动开始之前
# 如何确保最多?就是选择当前可选择范围内(左右活动之间)结束时间最早的
# 因此根据结束时间排序
n = int(input())
intervals = []
for i in range(n):
a, b = list(map(int,input().strip().split()))
intervals.append([a,b])
intervals.sort(key=lambda x: x[1])
count = 1
end_time = intervals[0][1]
for a,b in intervals[1:]:
if a<end_time:continue
end_time = b
count += 1
print(count)