题解 | 活动安排
活动安排
https://www.nowcoder.com/practice/16d971e9e42e4f3b9b1e2b8794796a43
n = int(input()) a = [list(map(int, input().split())) for _ in range(n)] #获取区间列表 a.sort(key=lambda x: (x[0], x[1])) #将区间先按照区间开头从大到小排序,再按照区间结尾从大到小排序 stack = [] #用来放选择的区间 for r in a: #r是排序后a中的区间 if not stack: #如果stack为空 stack.append(r) #把区间r加入进stack中 else: #stack不为空 if r[0] >= stack[-1][1]: #如果当前区间r的开头在stack最后的区间的后面 stack.append(r) #把区间r加入stack中 if r[0] >= stack[-1][0] and r[1] <= stack[-1][1]: #如果当前区间r是stack末尾区间的子集 stack[-1] = r #把stack的末尾区间替换为当前区间r print(len(stack)) #输出选中区间的数量