AcWing 803. 区间合并 python 排序 注意循环中的边界
原题链接
简单
作者:
yhyh
,
2020-09-18 20:41:11
,
所有人可见
,
阅读 626
if __name__=='__main__':
# 排序
n = input()
l = []
for _ in range(n):
l.append(map(int, raw_input().split()))
l.sort()
idx = 0
# 注意本段循环与计数。cnt初始为1代表一开始认为连成一大片; break时,多分出来一片
# 为什么这样写:否则需要额外考虑最后一项孤立出来的情形
cnt = 1
while idx < n-1:
low_bound = l[idx][0]
high_bound = l[idx][1]
while idx < n-1:
idx += 1; a=l[idx][0]; b=l[idx][1]
if a>=low_bound and a<=high_bound:
if b>high_bound: high_bound=b
else: cnt+=1; break
if idx < n-1: cnt += 1
print(cnt)