AcWing 803. 区间合并(Python3)
原题链接
简单
作者:
neepoo
,
2021-01-05 21:47:59
,
所有人可见
,
阅读 341
import sys
if __name__ == "__main__":
n = 0
nums = []
while True:
line = sys.stdin.readline().strip()
if not line:
break
line = line.split(" ")
if len(line) == 1:
n = int(line[0])
else:
i = int(line[0])
j = int(line[1])
nums.append([i, j])
nums = sorted(nums, lambda n:n[0])
res = 0
st = -1
ed = -1
for idx, num in enumerate(nums):
if idx == 0:
res = 1
st = num[0]
ed = num[1]
continue
# 需要合并区间,新的区间的左端点和当前区间的右端点重合的话也需要合并
if num[0] <= ed:
ed = max(ed, num[1])
else:
st = num[0]
ed = num[1]
res += 1
print(res)