蓝桥杯 算法提高 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)

先存起来排序

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

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

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

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

相关推荐
MC皮蛋侠客21 分钟前
Ruff 完全指南:下一代 Python Linter 与 Formatter
python
随意起个昵称32 分钟前
线性dp-LIS题目2(导弹拦截III)
算法·动态规划·图论
地平线开发者1 小时前
工具链使用从入门到顺手
算法
明航咨询—张老师1 小时前
AI工具狂飙时代:三款实用AI产品深度横向测评
大数据·人工智能·算法·it
happylifetree1 小时前
Python014-第二章13.数据容器-tuple案例
python
茉莉玫瑰花茶1 小时前
LangGraph 其他核心能力 [ 3 ]
python·ai
AI玫瑰助手1 小时前
Python函数:递归函数的定义与阶乘案例实现
开发语言·python·信息可视化
mifengxing2 小时前
LeetCode热题100——字母异位词分组
java·算法·leetcode·职场和发展·哈希表·hot100
武子康2 小时前
调查研究-155 Open-LLM-VTuber 本地部署与互动实战指南
人工智能·python·深度学习·ai·数字人
北漂人Java2 小时前
Pycharm配置Miniconda教程
python·pycharm