题解 | 活动安排-贪心-结束时间
活动安排
https://www.nowcoder.com/practice/16d971e9e42e4f3b9b1e2b8794796a43
import sys # for line in sys.stdin: # a = line.split() # print(int(a[0]) + int(a[1])) """ 解题思路: 贪心解法 0. 对所有活动以结束时间b 为排序 0.1 设置 count 计数 current_end=-1 作为记录结束时间 1. 选择结束时间早的活动,为后面活动预留时间 2. 选择下一个不重叠活动 比较当前活动的起始时间a与current_end 如果当前的起始时间a 大于current_end 用当前活动结束时间更新current_end 用于下次比较, 每次更新当前的结束 """ def func(arr:list)->int: arr.sort(key= lambda x:x[1]) count=0 current_end=-1 for i in range(len(arr)): if arr[i][0]>=current_end: count+=1 current_end=arr[i][1]# 更新当前的结束时间 return count def solve(): n=int(input()) #print(n) arr=[] for i in range(n): a=[] line =input().split(" ") a.append(int(line[0])) a.append(int(line[1])) arr.append(a) #print(arr) print(func(arr)) solve()