【python】第八天打卡 区间合并

于妍 2023-02-08 22:31:02

 思路

 

 代码

n = int(input())
arr = []

# 存储每个区间的左端点与右端点
for i in range(n):
    l,r = map(int,input().split())
    arr.append((l,r))
    
# 对arr按照每个区间左端点大小进行升序排序
arr.sort(key=lambda x:x[0])

# 初始化当前维护区间的左端点与右端点
st = arr[0][0]
ed = arr[0][1]
num = 1

# 进行区间维护
for i in range(1,n):
    if arr[i][1] <= ed:
        continue   # 包含当前所维护的区间里边
    if arr[i][0] <= ed and arr[i][1] > ed:
        ed = arr[i][1]   # 与当前维护的区间有交集,更新当前区间右端点
    if arr[i][0] > ed:   
        num += 1         # 与当前维护的区间没有交集,取下一个区间进行新的区间进行维护
        st = arr[i][0]
        ed = arr[i][1]
print(num)

 

...全文
8 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

30,341

社区成员

发帖
与我相关
我的任务
社区描述
打造最热爱学习的高校社区,帮助大家提升计算机领域知识,带大家打比赛拿奖,提高自我,希望大家共同创造良好的社区氛围。
社区管理员
  • 川川菜鸟
  • 亡心灵
  • 星辰菜鸟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

监督大家学习,每日学习打卡,以投稿形式打卡。扫码关注公众号,可加入粉丝群和领取大量资源。

试试用AI创作助手写篇文章吧