Python 代码
算法1
前缀和
n = int(input())
N = n
chafen = {}
while(n):
n-=1
x1,x2 = map(int,input().split())
if(chafen.get(x1)!=None):
chafen[x1]+=1
else:
chafen[x1]=1
if(chafen.get(x2+1)!=None):
chafen[x2+1]-=1
else:
chafen[x2+1]=-1
qianzhuihe = 0
ans = 0
chafen_list =[]
for key,value in chafen.items():
chafen_list.append((key,value))
chafen_list.sort(key = lambda x:x[0])
for i in range(len(chafen_list)):
qianzhuihe += chafen_list[i][1]
ans = max(ans,qianzhuihe)
print(ans)
算法2
小根堆
import heapq
n = int(input())
nums = []
for _ in range(n):
nums.append(tuple(map(int,input().split())))
nums.sort(key = lambda x:x[0])
heap = []
heapq.heapify(heap)
for i in range(0,n):
if(i==0 or nums[i][0]<=heap[0]):
heapq.heappush(heap,nums[i][1])
else:
heapq.heappushpop(heap,nums[i][1])
print(len(heap))