蓝桥杯 算法提高 ADV-1162 阴谋 python AC

keyword:数组、排序

python 复制代码
n = int(input())
d = {}
for _ in range(n):
    a, b = map(int, input().split())
    if (a in d and d[a] < b) or a not in d:
        d[a] = b
d = sorted(d.items(), key=lambda x: x[0])
ans = 0
l, r = d[0][0], d[0][1]
for i, j in d[1:]:
    if i <= r:
        if j > r:
            r = j
    else:
        ans += r - l
        l, r = i, j
ans += r - l
print(ans)

先存起来排序

每种情况分别判断下一段区间:

--下一段左区间在当前区间内,合并两段区间,更新右区间为两段最大的右区间

--下一段左区间在当前区间外,把当前区间长度累加到变量中,更新左右区间为下一段左右区间

坑点是题目说左闭右闭,实际上是左闭右开

相关推荐
Swift社区15 分钟前
LeetCode 432 - 全 O(1) 的数据结构
数据结构·算法·leetcode
逝玄15 分钟前
关于图灵停机问题不可判定性证明
算法·计算机科学
低客的黑调27 分钟前
为你的项目选择一个适合的[垃圾收集器]
java·jvm·算法
我不是QI32 分钟前
周志华《机器学习---西瓜书》 一
人工智能·python·机器学习·ai
今天没ID33 分钟前
Python 编程实战:从基础语法到算法实现 (1)
python
芬加达40 分钟前
leetcode34
java·数据结构·算法
资深web全栈开发1 小时前
LeetCode 1015. 可被 K 整除的最小整数 - 数学推导与鸽巢原理
算法·leetcode·职场和发展
二川bro1 小时前
Python在AI领域应用全景:2025趋势与案例
开发语言·人工智能·python
棒棒的皮皮1 小时前
【Python】Open3d用于3D测高项目
python·3d·open3d